/* Shared catalogue, account and studio design. */
.home{min-height:100vh;display:flex;flex-direction:column}.home main{flex:1}.home .content-wrap{--top:36px;padding-top:var(--top);padding-bottom:64px}.home .content-wrap>.section-head:first-child{margin-top:calc(-1*var(--top))}.home h1,.home h2,.home h3{font-family:var(--serif);font-weight:500}.home h1{font-size:clamp(38px,4.5vw,66px);line-height:1.1;letter-spacing:-1.7px}.home h2{font-size:30px;line-height:1.2;letter-spacing:-.6px}.home h3{font-size:23px}.home p{color:#b9c8d9}.home a{color:inherit}.home a:hover{color:#f7d79e}.home .eyebrow{color:#d7b782;letter-spacing:.21em;font:600 10px/1.6 Manrope,sans-serif;text-transform:uppercase}.home .icon{vertical-align:middle}.home button{cursor:pointer}.home button:disabled{opacity:.5;cursor:not-allowed}.home .button.full{width:100%;justify-content:center}.home :focus-visible{outline:2px solid #ffe2a5;outline-offset:4px}.home .header-actions form{margin:0}.home .notice{margin:20px 0 0;border:1px solid #638c78;border-left:3px solid #a8d4b8;padding:15px 20px;background:#132d2d;color:#deefdf}.home .notice.error{background:#311f2c;border-color:#ae718a;color:#f6cbd8}.home .section-head h2,.home .section-head h1{color:#f1d5a4}.home .section-head h1{font:500 43px/1.16 var(--serif);letter-spacing:-1px;margin:0;text-shadow:0 2px 12px #010611}.home .section-head h1 em{font-style:italic}.home.app-inner .section-head{margin-bottom:25px}.home .listing{margin:30px 0}.home .category-nav{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.home .pill{display:inline-flex;padding:10px 18px;font:500 11px Manrope,sans-serif;border:1px solid #456079;border-radius:3px;background:#0d2033;color:#c4d0e0}.home .pill.active,.home .pill:hover{border-color:#d8b580;color:#ffe0ad}.home .empty{text-align:center;padding:65px 20px;background:radial-gradient(ellipse at center,#18354d80,transparent 70%);margin:25px 0;border-block:1px solid #29445e}.home .empty h2,.home .empty h3{color:#efd5ab;font-size:32px}.home .empty p{margin-bottom:25px}.home .crumbs{display:flex;gap:15px;color:#a7bad0;font-size:11px;margin-bottom:30px}.home .profile{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:70px;max-width:1250px;margin:15px auto 60px}.home .profile-frame{position:relative;align-self:start;padding:10px;border:1px solid #87724d;background:linear-gradient(140deg,#e5c27c20,#18314920)}.home .profile-photo{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 8%;border-radius:0}.home .profile-copy{padding:15px 0}.home .profile-copy h1{margin:10px 0}.home .profile-copy .handle{color:#bd9f71;font-size:12px;margin-bottom:25px}.home .profile-copy h3{color:#e7d4b6;font-size:25px}.home .profile-copy>p{font-size:14px;line-height:1.9;max-width:600px}.home .facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 30px;max-width:600px;padding:24px 0;border-block:1px solid #35506b;margin:28px 0}.home .facts>div{display:block;min-width:0}.home .facts dd a{color:#e9c98f}.home .facts dt{color:#8fa8c1;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.home .facts dd{margin:6px 0 0;font-size:13px;color:#ead8b9}.home .chips{display:flex;flex-wrap:wrap;gap:8px}.home .chips span{border:1px solid #354d63;padding:5px 12px;color:#b8cadd;font-size:11px;background:#102236;border-radius:2px}.home .offer{border:1px solid #776343;border-radius:0;background:linear-gradient(120deg,#46352d45,#10223990);padding:24px;margin-top:30px}.home .offer h3{margin:0}.home .offer p{margin:8px 0 18px}.home .profile .actions{margin-top:25px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}.home .profile .actions form{margin:0}.home .jump{display:inline-flex;align-items:center;gap:10px;font-size:11px;color:#e4c796}.home .jump .icon{width:15px;height:15px;transform:rotate(90deg)}.home .offer .button .icon{width:15px;height:15px}.home .offer .form-note{margin:14px 0 0}.home .gallery-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 30px}.home .gallery-meta .crumbs{margin:0 0 8px}.home .gallery-meta p{margin:0;font-size:12px;color:#a9bbcf}.home .model-link{color:#e9c98f}.home .gallery-meta form{margin:0}.home .gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;--cols:4;--gap:20px;--tile:1.25}.home .gallery-shot{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border:1px solid #405b77;background:#10233a;border-radius:2px}.home .gallery-shot img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .5s}.home .gallery-shot:hover img{transform:scale(1.025)}.home .shot-number{position:absolute;left:12px;bottom:12px;font:600 9px/1 Manrope,sans-serif;letter-spacing:.14em;color:#f3dcb3;background:#061321c0;border:1px solid #d7b47a55;padding:6px 8px}.home .gallery-shot.locked{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0;background:radial-gradient(ellipse at 80% 10%,#a6775738,transparent 50%),linear-gradient(145deg,#142e48,#0b172b 55%,#322c40);position:relative}.home .locked-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06)}.home .gallery-shot:hover .locked-art{transform:scale(1.06)}.home .locked:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,#05101d30,#05101dc0 75%),linear-gradient(180deg,#05101d20,#05101daa)}.home .locked-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:20px}.home .locked .icon{width:28px;height:28px;color:#d6b279;margin-bottom:12px}.home .locked h3{font-size:24px;color:#f4e2c2;margin:6px 0;text-shadow:0 2px 14px #000a}.home .locked p{color:#d3dce7}.home .locked p{font-size:11px;margin:10px 0 22px;max-width:200px}.home .lightbox{box-sizing:border-box;overflow:hidden;touch-action:pan-y pinch-zoom;width:96%;max-width:96%;height:96%;max-height:96%;padding:10px;border:0;background:transparent}.home .lightbox[open]{display:flex;flex-direction:column}.home .lightbox::backdrop{background:#01050bea;backdrop-filter:blur(7px)}.home .lightbox img{display:block;margin:auto;max-width:100%;max-height:calc(96vh - 84px);width:auto;height:auto;object-fit:contain;border:1px solid #8d7857}.home .lightbox-bar{display:flex;flex:none;justify-content:end;align-items:center;gap:10px;margin-bottom:8px}.home .lightbox-bar button{display:grid;place-items:center;border:1px solid #5d7289;border-radius:4px;background:#10243a;color:#f2d4a7;width:38px;height:36px}.home .lightbox-bar button:hover{border-color:#e6c38c;background:#183150}.home .lightbox-bar .icon{width:17px;height:17px}.home .lightbox-bar span{margin-right:auto;padding-left:4px;font-size:11px;letter-spacing:.12em;color:#c4cedb}.home .panel{padding:32px;border:1px solid #38516b;background:radial-gradient(ellipse at right top,#72523717,transparent 60%),linear-gradient(140deg,#10243a,#091829);margin:22px 0;border-radius:3px}.home .panel h2{color:#ecd5ad;margin:8px 0 20px}.home .panel h3{color:#eddbba}.home .panel p{line-height:1.9}.home .prose{max-width:900px;margin:40px auto}.home .prose h1{color:#f0d3a4}.home .prose p{font-size:14px;line-height:1.9}.home .prose small{font:13px Manrope,sans-serif;color:#b5c6d8}.home .join-summary{display:grid;grid-template-columns:.7fr 1fr;gap:35px;align-items:center}.home .join-summary>img{width:100%;border:1px solid #85704e}.home .join-summary h1{font-size:43px}.home .account-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.home .subscription-row{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.home .stack-form{display:grid;gap:20px}.home .form-field{display:flex;flex-direction:column;gap:8px;font:500 12px/1.5 Manrope,sans-serif;color:#cbd9e6}.home input:not([type=checkbox]):not([type=radio]),.home textarea,.home select{width:100%;border:1px solid #4a6078;border-radius:3px;padding:13px 14px;background:#071625;color:#f1f0ed;font:400 14px/1.5 Manrope,sans-serif;min-width:0}.home input::placeholder,.home textarea::placeholder{color:#7d92aa}.home textarea{resize:vertical}.home input[type=checkbox]{width:17px;height:17px;accent-color:#d9b779;flex:none;margin:3px 0}.home input[type=file]{font-size:11px}.home .check-label{display:flex;align-items:start;gap:12px;font-size:12px;line-height:1.7;color:#b4c7db}.home .check-label a{text-decoration:underline;text-underline-offset:3px;color:#eacb9b}.home .form-note{font-size:11px!important;line-height:1.7;color:#90a8c0!important;margin:7px 0}.home .form-note a{text-decoration:underline}.home .search-form{max-width:700px;margin:30px auto}.home .search-form label{display:block;margin-bottom:12px}.home .search-line{display:flex;gap:12px;max-width:700px;margin:20px 0}.home .search-line .button{flex:none}.home .two-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.home .auth-scene{display:grid;grid-template-columns:1fr 1fr;max-width:1200px;margin:60px auto;min-height:640px;border:1px solid #4e5c6a;box-shadow:0 25px 100px #0004;background:#0a1a2e}.home .auth-art{position:relative;overflow:hidden;background:#16253a;min-height:500px}.home .auth-art>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 5%}.home .auth-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#071626ff 0%,#0b1b2ac0 27%,#0b1b2a05 70%)}.home .auth-art>div{position:absolute;z-index:1;bottom:35px;left:38px;right:25px}.home .auth-art h2{font-size:65px;line-height:1;letter-spacing:-2px;color:#fff7e6;margin:12px 0 20px}.home .auth-art h2 em{color:#f0c789}.home .auth-art p{font-size:12px}.home .auth-card{padding:48px 50px;align-self:center}.home .auth-card h1{font-size:40px;margin:14px 0}.home .auth-card>p{margin:15px 0 28px}.home .auth-card .form-note{margin:12px 0}.home .form-divider{display:flex;gap:15px;align-items:center;color:#92a9c0;margin:20px 0;font-size:11px}.home .form-divider:before,.home .form-divider:after{content:'';height:1px;background:#344c65;flex:1}.home .google-button{border-color:#647b91;background:#10243b;color:#eff3f7}.home .google-mark{font:700 19px Arial,sans-serif}.home .auth-links{display:flex;justify-content:space-between;font-size:11px;gap:15px}.home .auth-links a{color:#e4c796}.home .auth-card .text-link{font-size:12px;color:#e4c796}.home .admin-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:10px 0 36px}.home .admin-heading h1{margin:10px 0 0;font-size:48px}.home .admin-heading h1 em{color:#e6c799}.home .studio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.home .stat-card{display:flex;flex-direction:column;gap:10px;margin:0;border-top:2px solid #bc9b64}.home .stat-card strong{font:500 55px var(--serif);color:#eed4a7}.home .stat-card>span:last-child{font-size:11px;color:#a1b8cf}.home .workflow{padding-left:18px;color:#bdccdc;line-height:2.1}.home .activity-list>div{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-bottom:1px solid #29415b}.home .activity-list strong{font-size:12px;font-weight:500}.home .activity-list span{font-size:10px;color:#8fa8c2}.home .editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}.home .editor-grid .panel{margin-top:0}.home .editor-sidebar{position:sticky;top:25px}.home .editor-preview{width:100%;max-height:420px;object-fit:contain;background:#071320}.home .table-scroll{overflow:auto;margin:30px 0;border:1px solid #344e68}.home .studio-table{width:100%;border-collapse:collapse;font-size:12px}.home .studio-table th{text-align:left;color:#dabc8a;font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:#132a41;padding:15px 20px}.home .studio-table td{padding:12px 20px;border-bottom:1px solid #2c435c;background:#0a1b2d}.home .studio-table tr:hover td{background:#12283e}.home .studio-table small{display:block;color:#91a8bf;font-size:10px;margin-top:5px}.home .table-thumb{width:65px;height:74px;object-fit:cover;object-position:50% 10%;border:1px solid #4a5e74}.home .status{display:inline-block;font:500 10px/1.4 Manrope,sans-serif;white-space:nowrap;padding:5px 9px;border:1px solid #506377;border-radius:3px;background:#10233a;color:#c4d0e0;vertical-align:middle}.home .status.live{border-color:#456f61;color:#acd6c1;background:#16372e}.home .status.draft{color:#d8bd8f;background:#332e26;border-color:#706046}.home .pagination{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:25px;font-size:12px}.home .preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.home.admin-body .wrap{max-width:1400px}
@media(min-width:1001px){.home.app-inner .listing{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.home.app-inner .listing.world-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home.app-inner .listing .portrait{aspect-ratio:4/5}.home.app-inner .card-caption strong{font-size:24px}}
@media(min-width:1700px){.home .section-head h1{font-size:49px}}
@media(max-width:1200px){.home .section-head h1{font-size:35px}}
@media(max-width:1100px){.home .profile{gap:35px}.home .auth-card{padding:35px}.home .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));--cols:3}.home .editor-grid{grid-template-columns:minmax(0,1fr) 280px}.home.admin-body .brand{font-size:23px}.home.admin-body .main-nav{gap:15px}.home.admin-body .site-header .header-actions .button{padding:7px 12px}}
@media(max-width:760px){.home .account-grid{grid-template-columns:1fr;gap:0}.home .profile{grid-template-columns:1fr;gap:20px}.home .profile-frame{max-width:480px;width:100%;margin:auto}.home .profile-copy{padding:0}.home .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;--cols:2;--gap:14px;--tile:1.5}.home .auth-scene{grid-template-columns:1fr;margin:25px auto;min-height:0}.home .auth-art{min-height:245px}.home .auth-art>img{object-position:50% 24%}.home .auth-art>div{bottom:18px;left:25px}.home .auth-art h2{font-size:42px}.home .auth-art>div>p:last-child{display:none}.home .auth-card{padding:30px 25px}.home .auth-card h1{font-size:34px}.home .editor-grid{grid-template-columns:1fr}.home .editor-sidebar{position:static}.home .studio-stats{grid-template-columns:repeat(2,1fr);gap:15px}.home .stat-card{padding:23px}.home .admin-heading h1{font-size:35px}.home .admin-heading{align-items:start}.home .join-summary{grid-template-columns:1fr}.home .join-summary>img{max-height:350px;object-fit:cover;object-position:top}.home .panel{padding:24px}.home .two-fields{grid-template-columns:1fr}.home .gallery-shot.locked{padding:10px}.home .locked h3{font-size:19px}.home .locked p{font-size:10px;margin:5px 0 12px}.home .locked .button{font-size:9px;padding:8px}.home .content-wrap{--top:22px}.home .gallery-meta{flex-direction:column;align-items:start}.home .facts{grid-template-columns:repeat(2,minmax(0,1fr))}.home .section-head h1{font-size:27px;letter-spacing:-.8px}.home .site-header .header-actions>a.button{max-width:82px;overflow:hidden;text-overflow:ellipsis}.home .header-actions>.icon-button:first-child{display:none}.home .studio-table td,.home .studio-table th{padding:10px}.home .auth-links{font-size:10px}}
@media(prefers-reduced-motion:reduce){.home *{scroll-behavior:auto;transition:none!important}}

.home a.favorite{display:block}
.home .studio-photos h2{margin:6px 0 0}.home .upload-line{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) auto auto;gap:18px;align-items:end;margin:24px 0 6px}.home .upload-line .check-label{margin-bottom:12px;white-space:nowrap}.home .upload-line .button{min-height:48px}.home .studio-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:14px;margin-top:24px}.home .studio-photo{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border:1px solid #3c556f;background:#071320}.home .studio-photo:hover{border-color:#e6c38c}.home .studio-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 10%}.home .studio-photo .badge{position:absolute;left:6px;top:6px;font-size:9px;padding:3px 7px;border-radius:3px;background:#061321e0;border:1px solid #6f86a0;color:#dfe8f2}.home .studio-photo .tier-free{border-color:#5f9a80;color:#b6e0c8}.home .studio-photo .tier-account{border-color:#7f9bd0;color:#c9d8f5}.home .studio-photo .tier-paid{border-color:#d7b47a;color:#f2d4a2}.home .studio-photo .meta{position:absolute;inset:auto 0 0;padding:18px 8px 7px;font-size:9px;color:#d4dde8;background:linear-gradient(0deg,#030c18f0,transparent)}
@media(max-width:1100px){.home .upload-line{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.home .upload-line{grid-template-columns:1fr}}
/* Minimum layout width; smaller phones scale it (viewport.js). */
body.home{min-width:480px}
/* Narrow screens: the hero panels bleed past the left edge as well as the right. The slant pushes panel one's lower-left corner further out, so it is wider and its caption sits further in. */
@media(max-width:600px){.home .hero-panels{left:-6px;right:-60px;grid-template-columns:1.45fr 1fr 1fr 1fr}.home .hero-panel:first-child .panel-caption{left:76px}}
/* Hero panels: the hero's own top and bottom border frames them, so the panels keep only their slanted sides. */
.home .hero-panel{border-top:0;border-bottom:0}
/* Generation library (studio) */
.home .step-row{border-top:1px solid #2c435c;padding:18px 0}.home .step-row.step-new{opacity:.85}.home .step-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px}
.home .step-row .step-grid{display:grid;grid-template-columns:2fr .6fr .6fr 1fr 1fr;gap:14px;margin-bottom:12px}.home .step-row .step-grid.wide{grid-template-columns:1fr 2fr}
.home .ds-line{display:block;margin-bottom:6px;font-family:ui-monospace,Consolas,monospace;font-size:12px!important}
.home .prompt-preview{border:1px solid #2c435c;border-radius:4px;padding:10px 14px;margin:8px 0;background:#0a1b2d}.home .prompt-preview pre{font-size:11px;line-height:1.6;color:#c4d0e0;white-space:pre-wrap;margin:10px 0 0}
.home .chips .pill{margin:0 4px 6px 0}
@media(max-width:760px){.home .step-row .step-grid,.home .step-row .step-grid.wide{grid-template-columns:1fr 1fr}}
.home .name-row{display:flex;gap:8px;margin-top:6px}.home .name-row input{flex:1;min-width:0}
.home .help-q{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:4px;padding:0;border:1px solid #e9c385;border-radius:50%;background:none;color:#e9c385;font:700 10px/1 Manrope,sans-serif;cursor:pointer;vertical-align:1px}.home .help-q:hover{background:#e9c385;color:#050f1c}
.home .help-pop{max-width:min(440px,calc(100vw - 32px));padding:18px 20px;border:1px solid #e9c385;border-radius:8px;background:#0b1b2e;color:#dfe7ef;font:400 13px/1.65 Manrope,sans-serif;box-shadow:0 18px 50px rgba(0,0,0,.55)}.home .help-pop::backdrop{background:rgba(3,9,18,.45)}
.home .default-submit{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;padding:0}
.home .steps-text{border-top:1px solid #2c435c;padding-top:18px;margin-top:6px}.home .steps-text>summary,.home .llm-brief>summary{cursor:pointer;color:#e9c385;font:600 13px/1.6 Manrope,sans-serif}.home .steps-text[open]{display:grid;gap:14px}.home .steps-text textarea{font-family:Consolas,monospace;font-size:12px}
.home .llm-brief[open]{display:grid;gap:10px}.home .llm-brief textarea{width:100%}.home .llm-brief .button{justify-self:start}
.home #seq-brief{width:100%;font:12px/1.6 Consolas,monospace}.home #seq-brief+.button{justify-self:start}
.home .button.copied{background:#e9c385;border-color:#e9c385;color:#050f1c}.home textarea.copied{border-color:#e9c385;box-shadow:0 0 0 1px #e9c385}
.home .button-row{display:flex;gap:10px;flex-wrap:wrap}.home .row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.home .row-actions form{margin:0}.home .studio-table tr.current td{background:rgba(233,195,133,.07)}
.home .brand-stack{display:flex;flex-direction:column;line-height:1}.home .brand-stack small{margin-top:4px;font:500 13px/1 var(--serif);letter-spacing:0;color:#eaca94}.home .brand-stack small em{color:#fdf9f2;font-style:normal}
.home .photo-pos{align-self:center;color:#b3bfce;font:500 12px Manrope,sans-serif}.home .button[aria-disabled=true]{opacity:.35;pointer-events:none}
.home .studio-photo .tile-view{display:block;height:100%;cursor:zoom-in}.home .studio-photo .tile-edit{position:absolute;right:6px;top:6px;z-index:2;padding:3px 10px;font-size:10px;opacity:0;transition:opacity .15s}.home .studio-photo:hover .tile-edit,.home .studio-photo .tile-edit:focus-visible{opacity:1}@media(hover:none){.home .studio-photo .tile-edit{opacity:1}}
.home .lightbox.full{width:100%;max-width:100%;height:100%;max-height:100%;padding:8px}.home .lightbox.full img{height:calc(100vh - 76px);width:auto;max-height:none;max-width:100%}.home .lightbox-bar button:disabled{opacity:.3;cursor:default}
.home a.tile-view{display:block;cursor:zoom-in}
.home .idea-panel>summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.home .idea-panel>summary strong{color:#e9c385;font:600 15px/1.4 Manrope,sans-serif}.home .idea-panel[open]{display:grid;gap:22px}
.home .choice-pills{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0}.home .choice-pills legend{width:100%;margin-bottom:8px;font:500 12px/1.5 Manrope,sans-serif;color:#cbd9e6}.home .choice-pills input{position:absolute;opacity:0}.home .choice-pills label>span{display:inline-block;padding:7px 14px;border:1px solid #3c556f;border-radius:999px;color:#cbd9e6;font:500 12px Manrope,sans-serif;cursor:pointer}.home .choice-pills label>input:checked+span{border-color:#e9c385;background:#e9c385;color:#050f1c}.home .choice-pills input:focus-visible+span{outline:2px solid #e9c385;outline-offset:2px}
.home #idea-brief{width:100%;font:12px/1.6 Consolas,monospace}.home #idea-brief+.button{justify-self:start}
.home .idea-panel>form+.stack-form,.home .idea-panel>.stack-form+form{margin-top:4px}.home .idea-panel .stack-form>.button.small{justify-self:start;margin-bottom:28px}
/* Production board and workspace (studio-produce.php) */
.home .production .muted{color:#9fb2c6}.home .production .small{font-size:11px}
.home .production .chip{display:inline-block;margin:2px 4px 2px 0;padding:3px 9px;border:1px solid #3c556f;border-radius:999px;font-size:11px;color:#cbd9e6}
.home .prod-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px}
.home .prod-model{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:start}
.home .prod-model h2{margin:0 0 4px;font-size:22px}.home .prod-model h2 a{color:inherit}
.home .prod-cover{display:block;aspect-ratio:4/5;background:#071320;border:1px solid #3c556f;overflow:hidden}.home .prod-cover img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.home .prod-list{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:6px;font-size:12px}.home .prod-list strong{display:inline-block;min-width:70px;color:#e9c385}
.home .prod-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.home .prod-head h2{margin:4px 0}
.home .prod-state{display:grid;gap:10px;justify-items:end}.home .prod-state .row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.home .step-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:18px 0}
.home .step-card{font-size:12px;line-height:1.45}.home .step-card p{margin:6px 0}.home .step-card.flagged .studio-photo{border-color:#d08a6a}
.home .step-photo .studio-photo{aspect-ratio:4/5}
.home .step-empty{aspect-ratio:4/5;border:1px dashed #3c556f;display:grid;place-items:center;color:#6f86a0;font-size:11px}
.home .cand-row{display:grid;grid-template-columns:1fr 1fr;gap:4px}.home .cand-row form{margin:0}
.home .cand{position:relative;display:block;width:100%;padding:0;border:1px solid #3c556f;background:#071320;aspect-ratio:4/5;overflow:hidden;cursor:pointer}.home .cand:hover{border-color:#e6c38c}
.home .cand img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.home .cand .qa{position:absolute;right:3px;bottom:3px;font-size:10px;padding:1px 5px;border-radius:3px;background:#061321e0}.home .cand .qa.ok{color:#acd6c1}.home .cand .qa.bad{color:#f0a58a}
.home .production textarea[readonly]{width:100%;font:12px/1.6 Consolas,monospace}
@media (max-width:700px){.home .prod-board{grid-template-columns:1fr}.home .prod-head{flex-direction:column}.home .prod-state{justify-items:start}.home .prod-state .row-actions{justify-content:flex-start}}
.gallery-story{max-width:720px;margin:10px 0 0;color:#cbd9e6;font-size:15px;line-height:1.65}
.gallery-shot.wide{grid-column:span 2}.gallery-shot.wide img{object-position:center top}
.home .photo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px;margin:10px 0 30px}.home .photo-card{margin:0}.home .photo-card figcaption{margin-top:7px;font-size:11px;line-height:1.4;color:#a9bbcf;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home .gallery-frame{container-type:inline-size}.home .gallery-frame .gallery-grid{grid-auto-rows:calc((100cqw - (var(--cols) - 1)*var(--gap))/var(--cols)*var(--tile))}.home .gallery-frame .gallery-shot{aspect-ratio:auto;height:100%}
.home .step-photo .studio-photo{position:relative;display:block}.home .step-photo.pair{display:grid;grid-template-columns:1fr 1fr;gap:4px}.home .tile-label{position:absolute;left:4px;top:4px;font-size:9px;padding:2px 6px;border-radius:3px;background:#061321e0;border:1px solid #6f86a0;color:#f2d4a7}.home .step-card.warn .studio-photo,.home .step-card.warn .step-empty{border-color:#b9606b}.home .step-card .form-error.small{font-size:11px;margin:4px 0}.home .step-card .row-actions{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0;justify-content:flex-start}.home .step-card .row-actions .button,.home .step-edit form>.button{padding:3px 8px;font-size:10px;min-height:0}.home .step-card .row-actions form{margin:0}.home .step-edit summary{cursor:pointer;color:#e4c796;font-size:11px;margin:4px 0}.home .step-edit .stack-form{gap:8px;margin:6px 0}.home .step-edit .two-fields{grid-template-columns:1fr;gap:8px}.home .step-edit textarea,.home .step-edit select{font-size:12px;padding:7px 8px}.home .prod-warn p{margin:4px 0}.home .prod-warn form{margin:0}
/* While the photo viewer is open the page behind it does not scroll (wheel and swipe step through photos), and its scrollbar is hidden so it never covers the viewer's buttons; sizes are % of the visible area, not vw (which includes the scrollbar). */
html:has(.lightbox[open]){overflow:hidden}
/* The sign-in / subscribe card at the end of the viewer: the locked tile, photo-sized. */
.home .lightbox #lightbox-image[hidden],.home .lightbox-more[hidden]{display:none}.home .lightbox .lightbox-more{margin:auto;height:calc(96vh - 84px);width:auto;max-width:100%;aspect-ratio:4/5;border:1px solid #8d7857}.home .lightbox-more .locked-copy h3{font-size:30px}
/* Editors' writing help (dice, LLM ideas) under a field */
.home .assist{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-6px 0 4px}.home .assist .button{padding:3px 10px;font-size:11px;min-height:0}.home .assist-status{font-size:11px}.home .assist-options{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px}.home .assist-options:empty{display:none}.home .assist-idea{font:inherit;font-size:12px;line-height:1.4;text-align:left;color:#e8eef5;background:#0b1d30;border:1px solid #2c4560;border-radius:6px;padding:5px 9px;cursor:pointer;max-width:100%}.home .assist-idea:hover{border-color:#e4c796}.home .assist-idea.picked{border-color:#e4c796;background:#1d2a1d}
/* Framing set on the site (editor.php): card photos shift (--fx/--fy, % of the photo) and zoom (--fz) on top of the page's crop;
   header bands take a manual position (--band-position) and zoom (--bz). */
.home .portrait img{transform:translate(var(--fx,0%),var(--fy,0%)) skewX(10deg) scale(calc(var(--crop,1.55) * var(--fz,1)))}
.home .portrait:hover img{transform:translate(var(--fx,0%),var(--fy,0%)) skewX(10deg) scale(calc(var(--crop,1.55) * var(--fz,1) + .035))}
.home .section-head:before{background-size:cover,calc(var(--band-w) * var(--bz,1)) auto}
@media(max-width:600px){.home .portrait img{transform:translate(var(--fx,0%),var(--fy,0%)) skewX(7deg) scale(calc(var(--crop,1.55) * var(--fz,1)))}.home .portrait:hover img{transform:translate(var(--fx,0%),var(--fy,0%)) skewX(7deg) scale(calc(var(--crop,1.55) * var(--fz,1) + .035))}.home .section-head:before{background-size:cover,calc(var(--band-w) * var(--bz,1)) auto}}
/* On-page editor controls (administrators only) */
.home .card{position:relative}.home .editor-tools{display:flex;flex-wrap:wrap;gap:4px;z-index:6}.home .card-tools{position:absolute;top:6px;left:6px}.home .band-tools{position:absolute;right:6px;bottom:4px}.home .page-tools{margin:4px 0 14px}
.home .editor-btn{font:600 10px/1.3 Manrope,sans-serif;letter-spacing:.3px;color:#f2d4a2;background:#06142ae6;border:1px solid #e4c796;border-radius:4px;padding:4px 8px;cursor:pointer;text-decoration:none;white-space:nowrap}.home .editor-btn:hover{background:#1b3150}
.home .card.editing .portrait,.home .section-head.editing{outline:2px dashed #e4c796;outline-offset:2px;cursor:grab;touch-action:none}.home .card.editing .portrait:active,.home .section-head.editing:active{cursor:grabbing}.home .card.editing .portrait img{transition:none}.home .section-head.editing a{pointer-events:none}.home .section-head.editing,.home .card.editing{z-index:20}
.home .editor-panel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:7px 8px;margin-top:6px;background:#06142af2;border:1px solid #e4c796;border-radius:6px;font:500 10px Manrope,sans-serif;color:#dfe7f1;position:relative;z-index:7}.home .section-head .editor-panel{position:absolute;right:6px;top:calc(100% + 4px);margin:0}.home .editor-panel input[type=range]{width:110px;accent-color:#e4c796}.home .editor-panel .note{flex-basis:100%;color:#a9bbcf}
.home .editor-dialog{width:min(980px,94vw);max-height:90vh;background:#081a2e;color:#e8eef5;border:1px solid #e4c796;border-radius:8px;padding:16px 18px}.home .editor-dialog::backdrop{background:#020a14cc}.home .editor-dialog h3{margin:0 0 4px;font:500 22px var(--serif)}.home .editor-dialog p{font-size:12px;color:#a9bbcf;margin:0 0 10px}
.home .editor-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:0 0 12px}.home .editor-thumb{position:relative;border:1px solid #2c4560;border-radius:5px;overflow:hidden;background:#0b1d30;padding:0;cursor:pointer;aspect-ratio:2/3}.home .editor-thumb img{width:100%;height:100%;object-fit:cover;object-position:50% 10%;display:block}.home .editor-thumb span{position:absolute;left:0;right:0;bottom:0;font-size:9px;line-height:1.3;padding:3px 4px;background:#020a14d0;color:#e8eef5;text-align:left}.home .editor-thumb:hover{border-color:#e4c796}.home .editor-thumb .x{position:absolute;top:3px;right:3px;left:auto;bottom:auto;padding:1px 6px;background:#4d1620;border-radius:3px;font-size:11px}.home .editor-thumb .adj{position:absolute;top:3px;left:3px;right:auto;bottom:auto;padding:1px 5px;background:#06142ae6;border:1px solid #e4c796;border-radius:3px}
.home .editor-dialog input[type=search]{width:100%;margin:0 0 10px}.home .editor-dialog .dialog-actions{display:flex;gap:8px;justify-content:flex-end}
/* Studio list tools: live search, sort, cards/table */
.home .list-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}.home .list-tools input[type=search]{flex:1 1 260px;min-width:0}.home .list-sort{display:flex;align-items:center;gap:6px;font-size:12px;color:#a9bbcf}.home .list-sort select{padding:7px 9px;font-size:12px}.home .list-view{display:flex;gap:4px}.home .list-view .pill{cursor:pointer}.home .list-view input{position:absolute;opacity:0;pointer-events:none}.home .list-count{font-size:12px;color:#a9bbcf;margin:0 0 10px}
.home [data-search][hidden]{display:none!important}.home #list-results.loading{opacity:.6;transition:opacity .2s}
.home .item-cards .item-card .item-cover{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border:1px solid #2c4560;border-radius:6px;background:#0b1d30}.home .item-card .item-cover img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;display:block}.home .item-card .item-cover .status{position:absolute;left:6px;top:6px}.home .item-card figcaption{white-space:normal}.home .item-card figcaption strong{color:#f2d4a2;font-size:13px}.home .item-card figcaption small{display:block;color:#a9bbcf;font-size:11px;line-height:1.4;margin-top:2px}.home .item-card .row-actions{display:flex;gap:4px;margin-top:5px}
.home .list-filter{font-size:13px;color:#cfd8e3;margin:-4px 0 10px}.home .studio-galleries{margin-top:18px}.home .studio-galleries .row-actions{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
/* List toolbar: search, sort, view and button share one height, font, border and corner (owner, 5 Oct) */
.home .list-tools input[type=search],.home .list-tools select,.home .list-tools .pill,.home .list-tools .button{height:38px;min-height:38px;box-sizing:border-box;font:500 12px/1 Manrope,sans-serif;letter-spacing:.2px;border-radius:5px;margin:0;border:1px solid #4a6078;background:#071625;color:#dfe7f1}
.home .list-tools input[type=search]{padding:0 12px}.home .list-tools select{padding:0 28px 0 10px}.home .list-tools .pill,.home .list-tools .button{display:inline-flex;align-items:center;justify-content:center;padding:0 14px;cursor:pointer}
.home .list-tools .pill.active{border-color:#d8b580;background:#152c41;color:#f2d4a2}.home .list-tools .button{border-color:#d7b47a;color:#f2d4a2}.home .list-tools .button:hover,.home .list-tools .pill:hover{background:#152c41}
/* Space between a gallery's photos and "Explore More": the page's own rhythm (the 30px under the gallery meta) */
.home .gallery-frame+.section.more{margin-top:30px}
/* Administrator-only controls on the public site wear silver-cyan, so they never read as site content (owner, 5 Oct) */
.home .admin-link,.home .editor-btn{color:#cdeff5;border-color:#93d2dc;background:#0a2331e6}.home .admin-link:hover,.home .editor-btn:hover{background:#133b4c;color:#e6fbff}
.home .editor-panel,.home .editor-dialog{border-color:#93d2dc}.home .card.editing .portrait,.home .section-head.editing{outline-color:#93d2dc}.home .editor-thumb:hover{border-color:#93d2dc}.home .editor-thumb .adj{border-color:#93d2dc}
/* Filter pills in the list toolbar (type, status): same look as the view toggle, with a count */
.home .list-types{display:flex;flex-wrap:wrap;gap:4px}.home .list-types input{position:absolute;opacity:0;pointer-events:none}.home .list-types .pill small{margin-left:6px;color:#a9bbcf;font-size:10px}.home .list-types .pill.active small{color:#e4c796}
/* A gallery tile reached by its anchor (#p-ID, back from signing in) keeps a little room above it */
.home .gallery-shot{scroll-margin-top:24px}
/* Heat flames (owner, 5 Oct): blue-cyan tame, honey-yellow lingerie, orange-hot nude, red-hot explicit */
.home .heat{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;font-weight:600}.home .heat .icon{width:16px;height:16px;fill:currentColor;stroke:none}
.home .heat-blue{color:#5fd8f2}.home .heat-yellow{color:#f5c24f}.home .heat-orange{color:#ff8a3a}.home .heat-red{color:#ff4646}
.home .heat .icon{filter:drop-shadow(0 0 4px currentColor)}
.home .portrait .heat,.home .gallery-shot.locked>.heat{position:absolute;top:9px;right:9px;z-index:3;background:#020d1ad0;border:1px solid #ffffff22;border-radius:50%;width:30px;height:30px;justify-content:center}
.home .portrait.blurred img{filter:saturate(.9) brightness(.85)}.home .portrait .blur-note{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:3;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#020d1ad8;border:1px solid #e6c38c;color:#f2d4a2;font:600 11px Manrope,sans-serif;white-space:nowrap}.home .portrait .blur-note .icon{width:13px;height:13px}
.home .portrait .heat{transform:skewX(10deg)}.home .portrait .blur-note{transform:translate(-50%,-50%) skewX(10deg)}
@media(max-width:600px){.home .portrait .heat{transform:skewX(7deg)}.home .portrait .blur-note{transform:translate(-50%,-50%) skewX(7deg)}}
.home .studio-photo .heat{position:absolute;top:6px;right:6px;z-index:2;background:#020d1ad0;border-radius:50%;width:24px;height:24px;justify-content:center}.home .studio-photo .heat .icon{width:13px;height:13px}
.home .list-types .pill .heat-dot{display:none}
.home .row-actions .inline-form select{width:auto;padding:4px 8px;font-size:11px}
.home .lightbox-bar .check-state{margin-right:0;padding:0 6px;color:#f0b98a}.home .lightbox-bar .check-state.done{color:#9fdcc0}.home .lightbox-bar .check-btn{width:auto;padding:0 12px;font:600 11px Manrope,sans-serif;letter-spacing:.3px;color:#cdeff5;border-color:#93d2dc;background:#0a2331e6}.home .lightbox-bar .check-btn:hover{background:#133b4c;color:#e6fbff}.home .lightbox-bar .check-btn.redo{color:#f6cbd8;border-color:#ae718a;background:#311f2ce6}.home .lightbox-bar .check-btn.redo:hover{background:#4a2a3c}
.home .gallery-shot[data-checked=""]:after,.home .tile-view[data-checked=""]:after{content:'unchecked';position:absolute;right:8px;bottom:8px;z-index:2;font:600 9px/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#cdeff5;background:#0a2331e6;border:1px solid #93d2dc;padding:4px 6px;border-radius:3px}.home .sent-back{opacity:.4}
.home .check-forms{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}.home .check-forms form{margin:0}.home .check-forms .check-btn{border:1px solid #93d2dc;background:#0a2331;color:#cdeff5;border-radius:4px;padding:2px 8px;font:600 11px/1.3 Manrope,sans-serif;cursor:pointer}.home .check-forms .check-btn.redo{border-color:#ae718a;background:#311f2c;color:#f6cbd8}.home .checked-by{margin-left:6px;color:#9fdcc0;font-size:11px}.home .unchecked-link{color:#f0b98a}.home .check-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}.home .check-line form{margin:0}
.home .photo-card figcaption:has(.check-forms,.checked-by){display:flex;align-items:center;gap:6px}.home .photo-card figcaption:has(.check-forms,.checked-by)>a{min-width:0;overflow:hidden;text-overflow:ellipsis}.home .photo-card figcaption .check-forms,.home .photo-card figcaption .checked-by{flex:none;margin-left:auto}
/* Tagline under the site wordmark (owner, 6 Oct): small caps line, header and footer. */
.home .brand-site .brand-tagline{margin-top:6px;font:600 8px/1 Manrope,sans-serif;letter-spacing:.28em;text-transform:uppercase;color:#bfa57a;white-space:nowrap}
@media(max-width:600px){.home .brand-site .brand-tagline{margin-top:4px;font-size:6px;letter-spacing:.22em}}
/* Photoshoots panel (templates/photoshoots.php): card states green (selected) / none / purple (redo) / red-grey (rejected), the
   cover marker, stage heads with their meters, the insert "+", the PC-off banner. */
.home .photoshoots .notice.warn{background:#332e26;border-color:#706046;border-left:3px solid #e9c385;color:#f2d4a2;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.home .photoshoots .notice.warn form{margin:0}
.home .form-error{color:#f0a58a}
.home .photoshoots .category-nav .pill small{margin-left:6px;color:#e4c796;font-size:10px}
.home .photoshoots .ps-card .studio-photo{border-color:#3c556f}
.home .photoshoots .ps-card.is-selected .studio-photo{border-color:#9fdcc0;box-shadow:0 0 0 1px #9fdcc0}
.home .photoshoots .ps-card.is-regen .studio-photo{border-color:#b48ee0;box-shadow:0 0 0 1px #b48ee0}
.home .photoshoots .ps-card.is-rejected .studio-photo{border-color:#ae718a}
.home .photoshoots .ps-card.is-rejected img{filter:grayscale(1);opacity:.45}
.home .photoshoots .ps-card.is-planned .step-empty{border:1px dashed #e9c385;background:#0a1b2d;color:#f2d4a2;padding:8px;text-align:center}
.home .photoshoots .ps-tag{position:absolute;right:4px;top:4px;font-size:9px;padding:2px 6px;border-radius:3px;border:1px solid #456f61;background:#16372ee6;color:#acd6c1}
.home .photoshoots .ps-tag.regen{background:#2b2140e6;border-color:#9b7cc8;color:#ddb6f4}
.home .photoshoots .ps-tag.rejected{background:#311f2ce6;border-color:#ae718a;color:#f6cbd8}
.home .photoshoots .ps-cover-tag{position:absolute;left:4px;bottom:4px;font-size:9px;padding:2px 6px;border-radius:3px;background:#061321e0;border:1px solid #e9c385;color:#f2d4a2}
.home .photoshoots .step-photo{position:relative}
.home .photoshoots .ps-states{display:flex;gap:4px;margin:6px 0 2px}
.home .photoshoots .ps-states button{flex:1;border:1px solid #3c556f;background:#0a1b2d;color:#cbd9e6;border-radius:4px;padding:2px 8px;font:600 11px/1.3 Manrope,sans-serif;cursor:pointer}
.home .photoshoots .ps-states button:hover{border-color:#e6c38c}
.home .photoshoots .ps-states [data-ps-state=selected][aria-pressed=true]{background:#16372e;border-color:#9fdcc0;color:#acd6c1}
.home .photoshoots .ps-states [data-ps-state=regen][aria-pressed=true]{background:#2b2140;border-color:#b48ee0;color:#ddb6f4}
.home .photoshoots .ps-states [data-ps-state=rejected][aria-pressed=true]{background:#311f2c;border-color:#ae718a;color:#f6cbd8}
.home .photoshoots .ps-insert{position:absolute;right:0;top:50%;transform:translate(60%,-50%);z-index:3;width:22px;height:22px;border-radius:50%;border:1px solid #e9c385;background:#06142a;color:#f2d4a2;font:600 14px/1 Manrope,sans-serif;cursor:pointer;opacity:0;transition:opacity .15s;padding:0}
.home .photoshoots .ps-card:hover .ps-insert,.home .photoshoots .ps-card:focus-within .ps-insert{opacity:1}
@media(hover:none){.home .photoshoots .ps-insert{opacity:1}}
.home .photoshoots .ps-stage{margin:28px 0}
.home .photoshoots .ps-stage-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-bottom:1px solid #2c435c;padding-bottom:8px}
.home .photoshoots .ps-stage-head h2{margin:0;font-size:24px}
.home .photoshoots .ps-stage-head form{margin:0 0 0 auto}
.home .photoshoots .ps-stage-head .ps-insert-start{margin-left:auto}
.home .photoshoots .ps-stage-head form+.ps-insert-start{margin-left:0}
.home .badge{font-size:9px;padding:3px 7px;border-radius:3px;background:#061321e0;border:1px solid #6f86a0;color:#dfe8f2}
.home .badge.tier-free{border-color:#5f9a80;color:#b6e0c8}
.home .badge.tier-account{border-color:#7f9bd0;color:#c9d8f5}
.home .badge.tier-paid{border-color:#d7b47a;color:#f2d4a2}
.home .photoshoots .ps-meter{display:inline-block;vertical-align:middle;width:60px;height:4px;background:#2c435c;border-radius:2px;overflow:hidden}
.home .photoshoots .ps-meter.wide{display:block;width:100%;margin-top:6px}
.home .photoshoots .ps-meter span{display:block;height:100%;background:#e9c385}
.home .photoshoots .ps-meter.done span{background:#9fdcc0}
.home .photoshoots .ps-meter.over span{background:#e8a05c}
.home .photoshoots .ps-summary{padding:20px 24px}
.home .photoshoots .ps-summary p{margin:4px 0}
.home .photoshoots .ps-summary form{margin:8px 0 0}
.home .photoshoots .ps-filter{margin:14px 0}
.home .photoshoots .ps-filter input{position:absolute;opacity:0;pointer-events:none}
.home .photoshoots .ps-filter .pill small{margin-left:6px;color:#e4c796;font-size:10px}
.home .photoshoots .ps-failed{display:grid;place-items:center;cursor:pointer}
.home .photoshoots .ps-failed::after{content:'Not loaded · retry';position:absolute;color:#6f86a0;font-size:11px}
.home .photoshoots .ps-attn{color:#e4c796!important}
.home .photoshoots .button.danger{border-color:#ae718a;background:#311f2c;color:#f6cbd8}
.home .photoshoots .button.danger:hover:not(:disabled){background:#4a2a3c}
.home .photoshoots .lightbox-bar .check-btn.ps-regen{color:#ddb6f4;border-color:#9b7cc8;background:#2b2140e6}
.home .photoshoots .ps-fieldset{border:0;margin:0;padding:0;min-width:0}
.home .photoshoots .ps-unlink{margin-top:40px}
.home .photoshoots .ps-unlink form{display:grid;gap:12px;max-width:520px}
.home .photoshoots .lightbox-bar .check-btn[aria-pressed=true]{box-shadow:0 0 0 2px currentColor}
.home .photoshoots .ps-filter .pill:has(input:focus-visible){outline:2px solid #e9c385;outline-offset:2px}
.home .photoshoots .ps-card.is-neutral .studio-photo:hover{border-color:#e6c38c}
@media(max-width:600px){.home .photoshoots .lightbox-bar{gap:6px}.home .photoshoots .lightbox-bar [data-ps-viewer-state]{display:none}.home .photoshoots .lightbox-bar .check-btn{padding:0 8px}}
.home .photoshoots form:has(input[name=mode][value=existing]:checked) [data-mode]:not([data-mode~=existing]),.home .photoshoots form:has(input[name=mode][value=new]:checked) [data-mode]:not([data-mode~=new]),.home .photoshoots form:has(input[name=mode][value=random]:checked) [data-mode]:not([data-mode~=random]){display:none}
.home .button.danger{border-color:#ae718a;background:#311f2c;color:#f6cbd8}.home .button.danger:hover:not(:disabled){background:#4a2a3c}
.home .delete-zone form{margin:8px 0 0}.home .row-actions form{display:inline-block;margin:0}
/* Studio consistency pass (owner, 10 Oct: "go meticulously and fix such inconsistencies"). */
.home .choice-pills input,.home .list-view input,.home .list-types input,.home .ps-filter input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}
.home .choice-pills label,.home .list-tools label.pill{position:relative}
/* List toolbar: every control one height and one line (Sort was 3px up), filters on their own row, groups apart. */
.home .list-tools label{margin:0}
.home .list-tools:has(.list-types)::after{content:'';order:1;flex-basis:100%}
.home .list-tools .list-types{order:2}
.home .list-types+.list-types{margin-left:6px;padding-left:10px;border-left:1px solid #29445e}
/* Page headings: their buttons wrap and keep their size; on a phone they go under the title. */
.home .admin-heading .header-actions{margin-left:0;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.home .admin-heading .header-actions form{margin:0}
@media(max-width:760px){.home .admin-heading{flex-direction:column;align-items:stretch;gap:14px}.home .admin-heading .header-actions{justify-content:flex-start}.home .site-header .header-actions{gap:6px}}
/* Table action cells stay table cells (the owner's "lines on the right of each row"). */
.home .studio-table td.row-actions{display:table-cell;text-align:right;white-space:nowrap}
.home .studio-table td.row-actions>*{display:inline-flex;vertical-align:middle;margin:2px 0 2px 6px}
@media(max-width:760px){.home .studio-table td.row-actions{white-space:normal}}
/* Inline forms (a select or field and a button in one row): the controls as tall as a small button. */
.home .inline-form{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.home .inline-form select,.home .inline-form input:not([type=checkbox]):not([type=radio]){width:auto;height:33px;min-height:33px;padding:0 10px;font-size:12px}
/* Form controls one height (file and date inputs were 2px taller). */
.home input[type=file]{padding:10px 14px}.home input[type=date]{padding:12px 14px}
/* Buttons in stacked forms keep their width (only .full stretches). */
.home .stack-form>.button:not(.full),.home .stack-form>fieldset>.button:not(.full){justify-self:start}
.home .thumb-placeholder{display:grid;place-items:center;width:65px;height:74px;border:1px dashed #3c556f;color:#6f86a0}
.home .item-cover .thumb-placeholder{width:100%;height:100%;border:0;font-size:22px}
.home .ps-progress p{margin:0 0 4px}
.home .prod-board>.panel{margin:0}
/* Action rows outside tables start on the left like their peers. */
.home .check-line,.home .studio-galleries .row-actions,.home .item-card .row-actions,.home .panel>.row-actions{justify-content:flex-start}
/* Section tabs match the toolbar pills under them. */
.home .category-nav .pill{font:500 12px/1 Manrope,sans-serif;border-radius:5px;min-height:38px;align-items:center}
/* Photo viewer: one button height; on a phone the bar wraps and the photo fills the width. */
.home .lightbox-bar .button{height:36px;min-height:36px;padding:0 14px;display:inline-flex;align-items:center}
@media(max-width:600px){.home .lightbox-bar{flex-wrap:wrap;row-gap:6px}.home .lightbox-bar #photo-ig{display:none}}
@media(max-aspect-ratio:4/5){.home .lightbox.full img{width:100%;height:auto;max-height:calc(100% - 90px)}}
.home .stat-card strong{font-variant-numeric:lining-nums}
.home .production .chip{border-radius:4px}
.home.admin-body .footer-bottom{border-top:0;margin-top:0;padding-top:0;font-size:11px}
.home .dataset-lines{width:100%;font:12px/1.7 Consolas,monospace;min-height:60vh}
.home .admin-heading>.button{align-self:flex-start}
@media(max-width:760px){.home .members-table th:nth-child(5),.home .members-table td:nth-child(5){display:none}.home .list-tools input[type=search]{flex-basis:100%}}

/* ==== Public site: readability and polish (UX review, 11 Oct). Phones draw the 480 px layout at about x0.81 (viewport.js), so the
   phone sizes are set about 1.25x larger. the public site only (the studio has its own sizes). ==== */
body.home:not(.admin-body){font-size:15px}
body.home:not(.admin-body) ::selection{background:#e9c38566;color:#fff}
body.home:not(.admin-body) .main-nav{font-size:13px;letter-spacing:.02em}
body.home:not(.admin-body) .button{font-size:13px;letter-spacing:.02em}
body.home:not(.admin-body) .button.small,body.home:not(.admin-body) .site-header .header-actions .button{font-size:12px}
body.home:not(.admin-body) .brand-site .brand-tagline{font-size:9px;letter-spacing:.24em}
body.home:not(.admin-body) .eyebrow,body.home:not(.admin-body) .glam-intro .eyebrow{font-size:11px;letter-spacing:.28em}
body.home:not(.admin-body) .glam-intro>p:not(.eyebrow){font-size:15px}
body.home:not(.admin-body) .glam-intro .button{font-size:13px}
body.home:not(.admin-body) .panel-caption span{font-size:12px;max-width:230px;min-height:3.2em}
body.home:not(.admin-body) .section-head .text-link{font-size:12px;letter-spacing:.04em}
body.home:not(.admin-body) .card-caption .sub,body.home:not(.admin-body) .credit{font-size:11px}
body.home:not(.admin-body) .footer-links{font-size:13px}
body.home:not(.admin-body) .footer-bottom,body.home:not(.admin-body) .footer-bottom p,body.home:not(.admin-body) .footer-bottom span{font-size:11px}
body.home:not(.admin-body) .crumbs,body.home:not(.admin-body) .facts dt,body.home:not(.admin-body) .shot-number,body.home:not(.admin-body) .lightbox-bar span{font-size:12px}
body.home:not(.admin-body) .crumbs span{color:#6f86a0}
body.home:not(.admin-body) .chips span,body.home:not(.admin-body) .jump,body.home:not(.admin-body) .auth-links,body.home:not(.admin-body) .form-divider,body.home:not(.admin-body) .profile-copy .handle,body.home:not(.admin-body) .locked p{font-size:13px}
body.home:not(.admin-body) .form-note{font-size:12px!important}
body.home:not(.admin-body) h1{letter-spacing:-.025em}
body.home:not(.admin-body) .empty{border-inline:0;border-radius:0}
body.home:not(.admin-body) .offer>:last-child{margin-bottom:0}
body.home:not(.admin-body) .content-wrap>.crumbs{max-width:1250px;margin-inline:auto}
/* Cards: a soft gradient while the photo loads, a hairline gold glow on hover; the followed heart filled gold (it sat on a square). */
body.home:not(.admin-body) .portrait{background:linear-gradient(160deg,#1a2a42,#0b1729);transition:border-color .4s,box-shadow .4s}
body.home:not(.admin-body) .portrait:hover{border-color:#e6c38c;box-shadow:0 10px 30px #0009}
body.home:not(.admin-body) .card .favorite[aria-pressed=true]{background:none;color:#f2c98a}
body.home:not(.admin-body) .card .favorite[aria-pressed=true]:before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.4 4.6a5.5 5.5 0 0 0-7.8 0L12 5.3l-.6-.7a5.5 5.5 0 0 0-7.8 7.8L12 21l8.4-8.6a5.5 5.5 0 0 0 0-7.8Z' fill='black'/%3E%3C/svg%3E") center/contain no-repeat}
/* The member's own state on a model page and the subscription rows. */
body.home:not(.admin-body) .member-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 0}
body.home:not(.admin-body) .subscription-row{display:grid;grid-template-columns:64px 1fr auto;gap:22px;align-items:center}
body.home:not(.admin-body) .subscription-row img{width:64px;height:80px;object-fit:cover;object-position:50% 12%;border:1px solid #87724d}
body.home:not(.admin-body) .subscription-row h2{margin:0 0 6px;font-size:26px}
body.home:not(.admin-body) .subscription-row p{margin:0}
body.home:not(.admin-body) .subscription-row .row-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
body.home:not(.admin-body) .status-line{display:inline-block;padding:9px 16px;border:1px solid #87724d;border-radius:5px;color:#f2d4a2;font:500 13px/1.4 Manrope,sans-serif}
body.home:not(.admin-body) .account-tabs .pill.active{border-color:#d8b580;color:#ffe0ad}
/* Mobile menu: a real menu, one link per line, with search and the account links in it. */
body.home:not(.admin-body) .nav-extra{display:none}
@media(max-width:1000px){body.home:not(.admin-body) .main-nav.open{flex-direction:column;gap:0;padding:8px 22px;background:#061526}body.home:not(.admin-body) .main-nav a{padding:14px 0;border-bottom:1px solid #29445e}body.home:not(.admin-body) .main-nav a:last-child{border-bottom:0}body.home:not(.admin-body) .nav-extra{display:block}body.home:not(.admin-body) .main-nav a[aria-current=page]:after{display:none}}
body.home:not(.admin-body) .join-free{display:none}
@media(min-width:1001px){body.home:not(.admin-body) .join-free{display:inline-flex}}
/* Models list: 5 or 6 a row on large screens (30 models divide evenly), the slanted cards kept inside the band. */
@media(min-width:1001px){body.home:not(.admin-body) .card-grid{padding-right:24px}}
@media(min-width:1400px){body.home.app-inner:not(.admin-body) .listing{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}}
@media(min-width:1800px){body.home.app-inner:not(.admin-body) .listing{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:1700px){body.home:not(.admin-body) .main-nav{font-size:14px}body.home:not(.admin-body) .card-caption .sub{font-size:12px}body.home:not(.admin-body) .panel-caption span{font-size:13px}body.home:not(.admin-body) .section-head .text-link{font-size:13px}}
@media(min-width:2200px){body.home:not(.admin-body) .wrap{max-width:1960px}body.home:not(.admin-body) .glam-hero{height:600px}body.home:not(.admin-body) .glam-intro h1{font-size:128px}body.home:not(.admin-body) .section-head h2,body.home:not(.admin-body) .section-head h1{font-size:56px}body.home:not(.admin-body) .card-caption strong{font-size:27px}body.home:not(.admin-body) .main-nav,body.home:not(.admin-body) .button{font-size:15px}}
@media(max-width:760px){body.home:not(.admin-body) .auth-art{min-height:200px}body.home:not(.admin-body) .auth-art>div{display:none}body.home:not(.admin-body) .auth-art>img{object-position:50% 20%}
  body.home:not(.admin-body) .subscription-row{grid-template-columns:56px 1fr}body.home:not(.admin-body) .subscription-row .row-links{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:600px){
 body.home:not(.admin-body){font-size:16px}
 body.home:not(.admin-body) .site-header .brand-tagline{display:none} body.home:not(.admin-body) .site-footer .brand-tagline{font-size:10px}
 body.home:not(.admin-body) .site-header .header-actions .button{font-size:14px;min-height:36px;padding:6px 14px}
 body.home:not(.admin-body) .site-header .header-actions form:has([value=logout]),body.home:not(.admin-body) .site-header .header-actions .account-link{display:none}
 body.home:not(.admin-body) .glam-intro .eyebrow{font-size:12px}
 body.home:not(.admin-body) .glam-intro>p:not(.eyebrow),body.home:not(.admin-body) .profile-copy>p,body.home:not(.admin-body) .prose p{font-size:16px}
 body.home:not(.admin-body) .button,body.home:not(.admin-body) .glam-intro .button{font-size:15px}
 body.home:not(.admin-body) .section-head .text-link{font-size:13px;padding:8px 12px}
 body.home:not(.admin-body) .card-caption strong{font-size:20px}
 body.home:not(.admin-body) .card-caption .sub,body.home:not(.admin-body) .credit,body.home:not(.admin-body) .shot-number{font-size:13px}
 body.home:not(.admin-body) .footer-links{font-size:15px} body.home:not(.admin-body) .footer-bottom,body.home:not(.admin-body) .footer-bottom p,body.home:not(.admin-body) .footer-bottom span{font-size:13px}
 body.home:not(.admin-body) .crumbs,body.home:not(.admin-body) .facts dt,body.home:not(.admin-body) .pill,body.home:not(.admin-body) .form-field,body.home:not(.admin-body) .offer p,body.home:not(.admin-body) .profile-copy .handle,body.home:not(.admin-body) .chips span,body.home:not(.admin-body) .jump,body.home:not(.admin-body) .auth-links{font-size:14px}
 body.home:not(.admin-body) .form-note{font-size:13px!important}
 body.home:not(.admin-body) .main-nav{font-size:15px}
 body.home:not(.admin-body) .locked p{font-size:13px} body.home:not(.admin-body) .locked .button{font-size:13px;padding:9px 14px}
}
body.home:not(.admin-body) .main-nav form.nav-extra{margin:0}body.home:not(.admin-body) .main-nav form.nav-extra button{background:none;border:0;color:#ced6e0;font:inherit;padding:14px 0;cursor:pointer;text-align:left;width:100%}
body.home:not(.admin-body) .main-nav form.nav-extra button:hover{color:#f4d49e}

/* ==== Public site: the last readability touches and the charm pass (UX review, 11 Oct). Motion stays off for visitors who ask for
   less motion. ==== */
body.home:not(.admin-body) .status{font-size:11px}
@media(max-width:600px){body.home:not(.admin-body){
 .eyebrow,.status{font-size:13px}
 .text-link,.list-count,.search-form label,.check-label,.member-note,.status-line{font-size:14px}
 .facts dd{font-size:16px}
 .hero-panels{bottom:0}
}}
@keyframes ug-rise{from{opacity:0;translate:0 26px}}
@keyframes ug-up{from{opacity:0;translate:0 14px}}
@keyframes ug-panel{from{opacity:0;translate:36px 0}}
@keyframes ug-fade{from{opacity:0}}
@keyframes ug-shimmer{to{background-position:-250% 0}}
@keyframes ug-head{to{min-height:58px}}
@keyframes ug-head-line{to{box-shadow:0 10px 30px #0008;border-bottom-color:#e9c38533}}
html:has(body.home:not(.admin-body)){scrollbar-color:#3a5470 #050f1c;scroll-padding-top:84px}
body.home:not(.admin-body){
 /* The member's renewal: quiet text with a live dot (it looked like a button). */
 .status-line{padding:0;border:0;color:#cbd9e6}
 .status-line:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#8fd6b2;box-shadow:0 0 8px #8fd6b2;margin-right:9px;vertical-align:1px}
 .subscription-row .status{margin-right:10px}
 .row-links a:not(.button){color:#e4c796}
 /* Clean line breaks: no lone word at the end of a heading or paragraph. */
 :is(h1,h2,h3,.panel-caption strong,.card-caption strong){text-wrap:balance}
 :is(p,dd,.chips span){text-wrap:pretty}
 .facts dd{hyphens:auto}
 /* Arrows that lean, underlines that draw. */
 .button .icon,.text-link .icon{transition:translate .3s ease}
 .button:hover .icon,.text-link:hover .icon{translate:4px 0}
 .jump:hover .icon{translate:0 3px}
 :is(.footer-links,.crumbs,.auth-links,.row-links) a:not(.button){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .35s ease,color .2s}
 :is(.footer-links,.crumbs,.auth-links,.row-links) a:not(.button):hover{background-size:100% 1px}
 /* The phone menu drops in softly and shows the current page in gold. */
 @media(max-width:1000px){
  .main-nav{top:100%}
  .main-nav.open{box-shadow:0 30px 60px #000c,0 0 0 1px #e9c38522;transition:opacity .22s ease,translate .22s ease;@starting-style{opacity:0;translate:0 -6px}}
  .main-nav a[aria-current=page]{color:#f4d49e}
 }
 /* The profile photo in a gallery frame: gold corner marks and a faint outer hairline. */
 .profile-frame{outline:1px solid #e9c38526;outline-offset:7px}
 .profile-frame:before,.profile-frame:after{content:'';position:absolute;z-index:1;width:34px;height:34px;border:1px solid #e9c385;pointer-events:none}
 .profile-frame:before{top:-8px;left:-8px;border-right:0;border-bottom:0}
 .profile-frame:after{right:-8px;bottom:-8px;border-left:0;border-top:0}
 /* Fields glow gold on focus. */
 :is(input:not([type=checkbox]),textarea,select):focus{outline:none;border-color:#d8b580;box-shadow:0 0 0 3px #e9c38522}
 :is(a,button):focus-visible{outline:1px solid #ffe2a5;outline-offset:4px}
 /* Gold hairlines and the lotus ornament. */
 .site-footer{border-top-color:transparent;position:relative}
 .site-footer:before{content:'';position:absolute;inset:-1px 0 auto;height:1px;background:linear-gradient(90deg,transparent,#c9a46a99 30%,#c9a46a99 70%,transparent)}
 .facts{border-image:linear-gradient(90deg,#c9a46a77,#35506b 60%,transparent) 1}
 .ornament{display:flex;align-items:center;gap:14px;max-width:240px;margin:0 auto 18px;color:#d6b279}
 .ornament:before,.ornament:after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,#c9a46a)}
 .ornament:after{scale:-1 1}
 .ornament svg{width:26px;height:22px;fill:none;stroke:currentColor;stroke-width:1.1}
 /* A light sweep across the gold button on hover. */
 .button.primary{position:relative;overflow:hidden;isolation:isolate}
 .button.primary:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,#fff9 50%,transparent 65%);translate:-110% 0;transition:translate .9s ease}
 .button.primary:hover:after{translate:110% 0}
 /* Locked tiles lean in rather than push; the heart answers a press. */
 .locked .icon{box-sizing:content-box;padding:11px;border:1px solid #d6b27955;border-radius:50%;background:#05101d66}
 .gallery-shot.locked .locked-art{transition:transform 1.4s ease,filter 1.4s ease}
 .gallery-shot.locked:hover .locked-art{transform:scale(1.1);filter:brightness(1.12) saturate(1.1)}
 .portrait .blur-note{background:#020d1aa8;backdrop-filter:blur(6px)}
 .card .favorite:before{transition:scale .2s}
 .card .favorite:active:before{scale:.8}
 /* Photos fade in; a shimmer while they load (app.js marks them). */
 img.ug-wait{opacity:0}
 @media(prefers-reduced-motion:no-preference){
  img.ug-in{animation:ug-fade .7s ease both}
  .portrait:has(img.ug-wait){background:linear-gradient(110deg,#14233a 30%,#1f3150 50%,#14233a 70%) 0 0/250% 100%;animation:ug-shimmer 1.6s linear infinite}
 }
 /* The header stays, with a blur, and slims over the first 140 px of scroll (where browsers can tie it to scrolling). */
 .site-header{position:sticky;top:0;z-index:30;background:linear-gradient(110deg,#061220e0,#020b16e0 65%,#0b1321e0);backdrop-filter:blur(14px) saturate(1.15)}
 @supports(animation-timeline:scroll()){
  .header-inner{animation:ug-head linear both;animation-timeline:scroll(root);animation-range:0 140px}
  .site-header{animation:ug-head-line linear both;animation-timeline:scroll(root);animation-range:0 140px}
 }
 /* The home hero arrives gently; cards rise as they come into view. */
 @media(prefers-reduced-motion:no-preference){
  .glam-intro>*{animation:ug-up .8s cubic-bezier(.2,.7,.2,1) both}
  .glam-intro>:nth-child(2){animation-delay:.08s}
  .glam-intro>:nth-child(3){animation-delay:.16s}
  .glam-intro>:nth-child(4){animation-delay:.24s}
  .hero-panel{animation:ug-panel .9s cubic-bezier(.2,.7,.2,1) both}
  .hero-panel:nth-child(2){animation-delay:.08s}
  .hero-panel:nth-child(3){animation-delay:.16s}
  .hero-panel:nth-child(4){animation-delay:.24s}
  @supports(animation-timeline:view()){.card-grid>.card{animation:ug-rise linear both;animation-timeline:view();animation-range:entry 5% entry 40%}}
 }
 /* A small gold star before her biography (owner, 14 Oct: no drop cap). */
 .profile-copy>p:first-of-type::before{content:'\2726';color:#e9c385;font-size:.85em;margin-right:.55em;vertical-align:.05em}
}
/* ==== Photoshoots editor: cards, the Photo panel and the Insert modal (UX review, 14 Oct). ==== */
/* Cards: the number is the drag grip (nothing else grabs); the photo opens the panel; a one-line caption keeps rows even. */
.home .photoshoots .ps-grip{cursor:grab;user-select:none;z-index:2;display:inline-flex;align-items:center;gap:4px;height:20px;box-sizing:border-box}
.home .photoshoots .ps-grip-dots{color:#c9a46a;font-size:12px;line-height:1}
.home .photoshoots .ps-grip:hover,.home .photoshoots .ps-grip:focus-visible{border-color:#e9c385;color:#f4d49e}
.home .photoshoots .ps-grip:hover .ps-grip-dots{color:#e9c385}
.home .photoshoots .ps-card.is-dragging .ps-grip,.home .photoshoots .ps-grip:active{cursor:grabbing}
@media(pointer:coarse){.home .photoshoots .ps-grip-dots{display:none}.home .photoshoots .ps-grip{cursor:default}}
.home .photoshoots .studio-photo[data-open-panel]{cursor:pointer}
.home .photoshoots .studio-photo img{color:transparent}
.home .photoshoots .ps-open-hint{position:absolute;inset:auto 0 0;padding:18px 8px 6px;text-align:right;font:600 10px/1 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#f4d49e;background:linear-gradient(transparent,#020b16d9);opacity:0;transition:opacity .2s;pointer-events:none}
@media(hover:hover) and (pointer:fine){.home .photoshoots .studio-photo:hover .ps-open-hint{opacity:1}}
.home .photoshoots .ps-caption{margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:text}
.home .photoshoots .ps-card.is-dragging{opacity:.4}
.home .photoshoots .ps-card.drop-before{box-shadow:-3px 0 0 #e9c385}
.home .photoshoots .ps-card.drop-after{box-shadow:3px 0 0 #e9c385}
.home .photoshoots .ps-stage.drop-stage .ps-stage-head{border-bottom-color:#e9c385}
.home .photoshoots .ps-card.ps-flash .studio-photo{outline:2px solid #e9c385;outline-offset:2px;transition:outline-color 1s}
.home .photoshoots .ps-cover-tag{left:4px;bottom:4px}
.home .photoshoots .ps-tag{max-width:calc(100% - 60px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
@media(hover:none){.home .photoshoots .ps-insert{display:none}}
/* Title meta line and the summary (publish beside the running jobs). */
.home .photoshoots .admin-heading h1+.muted{margin-top:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.home .photoshoots .admin-heading h1+.muted .status{font-family:Manrope,sans-serif}
.home .photoshoots .ps-summary-actions{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.home .photoshoots .ps-summary-actions:empty{display:none}
.home .photoshoots .ps-summary-actions>*{margin:0}
@media(max-width:600px){.home .photoshoots .ps-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.home .photoshoots .ps-filter::-webkit-scrollbar{display:none}.home .photoshoots .ps-filter .pill{flex:none}}

/* Modals (Photo panel, Insert). */
html.ps-modal-open{overflow:hidden}
.ps-modal{padding:0;border:1px solid #2c4560;border-radius:6px;background:#0a1626;color:#dbe5ee;box-shadow:0 30px 80px #000c;font:14px/1.5 Manrope,sans-serif}
.ps-modal::backdrop{background:rgba(3,8,18,.88)}
.ps-modal[open]{display:flex;flex-direction:column}
.ps-modal h3{margin:0 0 10px;font:600 11px/1.2 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#c9a46a}
.ps-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:0 12px 0 20px;border-bottom:1px solid #2c4560;flex:none}
.ps-modal-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-modal-title strong{font:500 18px/1.2 var(--serif,Georgia,serif);color:#f4ead8}
.ps-modal-title .muted{font-size:13px;margin-left:8px}
.ps-modal-nav{display:flex;gap:8px;align-items:center;flex:none}
.ps-x{width:36px;height:36px;border:1px solid #2c4560;border-radius:4px;background:transparent;color:#cbd9e6;font-size:20px;line-height:1;cursor:pointer;margin-left:8px}
.ps-x:hover{border-color:#e9c385;color:#f4d49e}
.ps-x.small{width:24px;height:24px;font-size:15px;margin:0 0 0 auto}
.ps-panel{position:fixed;inset:24px;margin:auto;width:auto;height:auto;max-width:1360px;max-height:none}
.ps-panel-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px}
.ps-panel-photo{position:relative;background:#050a14;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}
.ps-panel-frame{position:relative;display:inline-flex;max-width:100%;max-height:100%}
.ps-panel-photo img{max-width:100%;max-height:calc(100vh - 48px - 52px);object-fit:contain;display:block}
.ps-panel-photo .ps-tag{position:absolute;right:12px;top:12px;font-size:12px;padding:4px 10px;border-radius:3px;border:1px solid #456f61;background:#16372ee6;color:#acd6c1}
.ps-panel-photo .ps-tag.regen{border-color:#b48ee0;background:#2b2140e6;color:#ddb6f4}
.ps-panel-photo .ps-tag.rejected{border-color:#ae718a;background:#311f2ce6;color:#f6cbd8}
.ps-panel-tools{overflow:auto;padding:0 20px 20px;border-left:1px solid #2c4560;display:flex;flex-direction:column}
.ps-p-section{padding:18px 0;border-bottom:1px solid #1d3349}
.ps-p-section:last-of-type{border-bottom:0}
.ps-p-section:has(+.ps-p-danger){border-bottom:1px solid #1d3349}
.ps-p-danger{padding-top:24px;border-bottom:0}
.ps-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ps-row+.ps-row{margin-top:12px}
.ps-row-end{justify-content:flex-end;margin-top:14px}
.ps-row-split{justify-content:space-between;margin-top:12px}
.ps-modal .button{min-height:36px;font-size:14px}
.ps-modal .button.small{min-height:28px;font-size:12px;padding:4px 12px}
.ps-ghost{background:transparent!important;border-color:transparent!important;color:#9fb4c8!important}
.ps-ghost:hover:not(:disabled){color:#f4d49e!important}
.ps-danger-outline{background:transparent!important;border-color:#ae718a!important;color:#f0a9bd!important}
.ps-confirm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#f6cbd8;font-size:13px}
/* Segmented controls (state, pose) and tabs. */
.ps-seg{display:flex;border:1px solid #3c556f;border-radius:5px;overflow:hidden}
.ps-seg button{flex:1;min-height:36px;border:0;border-left:1px solid #3c556f;background:#0a1b2d;color:#cbd9e6;font:600 13px/1 Manrope,sans-serif;cursor:pointer;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.ps-seg button:first-child{border-left:0}
.ps-seg button:hover:not(:disabled){background:#10263d}
.ps-seg button:disabled{opacity:.5;cursor:not-allowed}
.ps-seg button[aria-pressed=true]{background:#2a2414;color:#f4d49e}
.ps-seg-state .is-sel[aria-pressed=true]{background:#16372e;color:#acd6c1}
.ps-seg-state .is-regen[aria-pressed=true]{background:#2b2140;color:#ddb6f4}
.ps-seg-state .is-rej[aria-pressed=true]{background:#3a1f2c;color:#f6cbd8}
.ps-seg button>span{font-size:14px}
.ps-seg kbd{font:600 10px/1 ui-monospace,Consolas,monospace;color:#7f93a8;border:1px solid #2c4560;border-radius:3px;padding:2px 4px}
.ps-tabs{display:flex;gap:22px;border-bottom:1px solid #1d3349;margin-bottom:16px}
.ps-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:6px 0 8px;color:#9fb4c8;font:600 12px/1 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;margin-bottom:-1px}
.ps-tabs button.active{color:#f4d49e;border-bottom-color:#e9c385}
.ps-field{display:block;margin:0 0 14px}
.ps-label{display:block;margin-bottom:6px;font-size:13px;color:#cbd9e6}
.ps-label small{color:#7f93a8;margin-left:6px;font-size:11px}
.ps-label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.ps-label-row .ps-label{margin:0}
.ps-modal input:not([type=checkbox]):not([type=radio]),.ps-modal textarea{width:100%;box-sizing:border-box;min-height:36px;font:14px/1.5 Manrope,sans-serif;padding:6px 10px;background:#071320;border:1px solid #2c4560;border-radius:4px;color:#dbe5ee}
.ps-modal textarea{resize:vertical}
.ps-modal textarea.ps-mono{font:12px/1.5 ui-monospace,Consolas,monospace;min-height:18em}
.ps-modal input:focus,.ps-modal textarea:focus{outline:none;border-color:#d8b580;box-shadow:0 0 0 3px #e9c38522}
.ps-edited{margin-left:6px;font-size:10px;padding:1px 6px;border-color:#e9c385;color:#f4d49e}
/* Status strip and the unsent-changes bar. */
.ps-strip{position:sticky;top:0;z-index:2;display:flex;gap:10px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border-radius:4px;font-size:13px}
.ps-strip.ok{background:#16372e;border:1px solid #456f61;color:#cdeedd}
.ps-strip.warn{background:#2f2814;border:1px solid #8d7857;color:#f2dcae}
.ps-strip.error{background:#3a1f2c;border:1px solid #ae718a;color:#f6cbd8}
.ps-panel-tools.has-unsent{padding-bottom:0}
.ps-unsent{position:sticky;bottom:0;z-index:3;box-shadow:0 -10px 20px #0a1626;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px -20px -20px;padding:12px 20px;background:#2f2814;border-top:1px solid #8d7857;color:#f2dcae;font-size:13px}
.ps-unsent span{margin-right:auto}
/* Insert modal. */
.ps-insert-modal{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
.ps-insert-body{padding:4px 20px 20px;overflow:auto}
.ps-plan{margin:16px 0 4px;padding:14px 16px;border:1px dashed #e9c385;border-radius:4px;background:#071320;min-height:64px}
.ps-plan p{margin:0 0 6px}
.ps-plan-meta{font:600 12px/1.4 Manrope,sans-serif;letter-spacing:.06em;color:#f2d4a2}
.ps-own{margin-top:18px;border-top:1px solid #1d3349;padding-top:12px}
.ps-own summary{cursor:pointer;color:#cbd9e6;font-size:13px}
.ps-own textarea{margin-top:10px}
/* Phone: full-screen sheets, the photo on top. */
@media(max-width:899px){
 .ps-panel{inset:0;max-width:none;border-radius:0;border:0}
 .ps-panel-body{display:block;overflow:auto}
 .ps-panel-photo{max-height:58vh;height:58vh}
 .ps-panel-photo img{max-height:58vh}
 .ps-panel-tools{border-left:0;overflow:visible;padding:0 16px 16px}
 .ps-modal-head{min-height:48px;padding:0 6px 0 14px;position:sticky;top:0;background:#0a1626;z-index:3}
 .ps-modal .ps-modal-nav .button[data-p-step]{min-width:40px;min-height:40px;padding:0 8px;font-size:0}
 .ps-modal-nav [data-p-step="-1"]::before{content:'‹';font-size:22px}
 .ps-modal-nav [data-p-step="1"]::before{content:'›';font-size:22px}
 .ps-x{width:40px;height:40px}
 .ps-modal-title .muted{display:none}
 .ps-seg button{min-height:44px}
 .ps-row-end .button.primary,.ps-row-split .button.primary{width:100%}
 .ps-insert-modal{width:100vw;max-width:none;height:100vh;max-height:none;inset:0;border-radius:0;border:0}
}
/* UX review 2 (14 Oct): calmer primary buttons in the modals, a red delete confirm, hints only for keyboards, bigger phone taps. */
.ps-modal .button.primary:not(.small){min-height:36px;padding:6px 18px;box-shadow:0 2px 8px #0006}
.ps-modal .button:not(.small):not(.primary){min-height:36px;padding:6px 16px}
.ps-modal [data-p-del-yes]{background:#a8475f!important;border-color:#a8475f!important;color:#fff!important}
.ps-modal [data-p-del-yes]:hover{background:#bd5670!important}
.ps-modal [data-p-del-no]{min-height:28px}
@media(pointer:coarse){.ps-seg kbd{display:none}}
@media(max-width:899px){.ps-modal .button.small{min-height:36px}.ps-modal .ps-row-end .button.primary,.ps-modal .ps-row-split .button.primary{min-height:44px}}
.ps-modal .ps-ghost[data-p-del-no]{border-color:#3c556f!important;color:#cbd9e6!important}
.home .photoshoots .ps-skip{margin-left:auto;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.home .photoshoots .ps-skip-box{width:12px;height:12px;border:1px solid #7f93a8;border-radius:2px;display:inline-grid;place-items:center;font-size:10px;line-height:1}
.home .photoshoots .ps-skip.active .ps-skip-box{border-color:#e9c385;background:#e9c385;color:#071320}
.home .photoshoots .ps-skip.active .ps-skip-box::after{content:"✓"}
@media(max-width:600px){.home .photoshoots .ps-skip{margin-left:12px}}
/* Focus-point framing from the on-page editor (--ox/--oy: the point kept in view, --oz: zoom); unset, each size keeps its own crop */
.home .panel-image img{object-position:var(--ox,50%) var(--oy,4%);transform:scale(calc(var(--panel-crop,1) * var(--oz,1)));transform-origin:var(--ox,50%) var(--oy,10%)}
.home .hero-panel:hover img{transform:scale(calc(var(--panel-crop,1) * var(--oz,1) + .03))}
.home .auth-art>img{object-position:var(--ox,50%) var(--oy,5%);transform:scale(var(--oz,1));transform-origin:var(--ox,50%) var(--oy,5%)}
@media(max-width:760px){.home .auth-art>img{object-position:var(--ox,50%) var(--oy,24%)}body.home:not(.admin-body) .auth-art>img{object-position:var(--ox,50%) var(--oy,20%)}}
@media(max-width:600px){.home .panel-image img{object-position:var(--ox,50%) var(--oy,0%);transform:scale(var(--oz,1))}.home .hero-panel:hover img{transform:scale(calc(var(--oz,1) + .03))}}
.home .focus-tools{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:6}
.home .auth-art .focus-tools{left:12px;transform:none}
.home .focus-editing{outline:2px dashed #93d2dc;outline-offset:-2px;cursor:grab;touch-action:none}
.home .focus-editing:active{cursor:grabbing}
.home .focus-editing img{transition:none!important}
.home .editor-panel.floating{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;margin:0}
/* Tagline spread to the wordmark's exact width (owner, 15 Oct): one span per letter, spaced evenly. */
body.home .brand-stack.brand-site .brand-tagline{letter-spacing:0}
.home .brand-tagline .brand-fit{display:flex;justify-content:space-between}
.home .brand-tagline .brand-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* The header wordmark, logo and tagline keep their 1200px size down to the smallest phones (owner, 15 Oct). */
@media(max-width:600px){body.home:not(.admin-body) .site-header .brand{font-size:26px;gap:10px;letter-spacing:-.8px}body.home:not(.admin-body) .site-header .brand-symbol{width:33px;height:35px}body.home:not(.admin-body) .site-header .brand-tagline{display:block;font-size:9px;margin-top:6px}}
/* The copyright line sits on the right of the footer (owner, 15 Oct). */
body.home:not(.admin-body) .footer-bottom>span{margin-left:auto;text-align:right}
/* Header buttons share one width (owner, 15 Oct: Join free = Sign in; signed in, My account = Admin = Sign out). */
@media(min-width:601px){body.home:not(.admin-body) .site-header .header-actions .button{min-width:108px;justify-content:center}}
