:root{--hairline:#282828;--site-font-size:12px;color-scheme:dark;font:var(--site-font-size)/1.5 'Inconsolata',ui-monospace,monospace;background:#080808;color:#fff}
*{box-sizing:border-box;font-size:var(--site-font-size)}
body{margin:0;min-height:100svh;text-transform:uppercase}
.app-shell{height:100dvh;overflow:hidden}
[hidden]{display:none!important}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none;transition:background-color 1.2s ease}
button{font:inherit;color:inherit;background:none;border:0;padding:8px 0;cursor:pointer;text-transform:inherit;transition:background-color 1.2s ease}
button:hover,a:hover{background-color:#202020;transition-duration:.2s}
:focus{outline:none}
#public-header{display:flex;align-items:center;gap:20px;width:100%;max-width:1200px;min-height:72px;margin:0 auto;padding:20px 32px;background:#080808}
.wordmark{display:inline-block;font-weight:500;padding:3px 6px;transition:none}
.wordmark:hover{background:transparent}
.column-header{margin:0}
#refresh:disabled{opacity:.4;cursor:default}
#signin{min-height:calc(100svh - 72px);display:grid;place-items:center;padding:24px 24px 100px}
#signin[hidden]{display:none}
.entry{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
#connect{padding-inline:12px;background:#fff;color:#000;transition:background-color 1.2s ease,opacity 1.2s ease;animation:connect-arrive 1.2s ease backwards}#connect.is-leaving{animation:none;opacity:0}@keyframes connect-arrive{from{opacity:0}to{opacity:1}}#connect:hover{background:#ddd;transition-duration:1.2s}
.connection-note{color:#fff}
.connection-note{max-width:280px;margin:16px 0 0}
.connection-note:empty,#dashboard-status:empty{display:none}
:is(#dashboard,#admin){width:100%;max-width:1200px;height:100dvh;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:180px minmax(0,1fr) 160px;gap:32px;align-items:stretch;overflow:hidden}
.site-nav,.right-controls,.main-column{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.site-nav{padding-top:20px}
.site-nav nav{display:flex;flex-direction:column;gap:10px;margin-top:56px}
.site-nav a{display:block;width:100%;padding:3px 6px}
.site-nav a[aria-current="page"]{color:#fff}
.nav-icon{display:none;width:24px;height:24px;fill:currentColor;shape-rendering:crispEdges}
.money-total{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:center;white-space:nowrap;margin:0}.money-total span:nth-child(even){text-align:right}
#money-view h1{margin:0 0 24px}
#money-admin-link{display:inline-block;margin-top:24px;padding:3px 6px}
.main-column{min-width:0;padding:20px 16px 40px;border-inline:1px solid var(--hairline)}
#dashboard .main-column{overflow:hidden;padding-bottom:0}
#dashboard .main-column>section{height:100%;overflow-y:auto;overscroll-behavior:contain;padding-bottom:40px}
.right-controls{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:20px}
.right-controls button{color:#fff;width:100%;padding:3px 6px;text-align:left}
.disconnect-menu{position:relative;width:100%}
.disconnect-menu summary{display:block;padding:3px 6px;cursor:pointer;list-style:none;transition:background-color 1.2s ease}
.disconnect-menu summary::-webkit-details-marker{display:none}
.disconnect-menu summary:hover{background:#202020;transition-duration:.2s}
.disconnect-options{position:relative;width:100%;min-width:0;box-sizing:border-box;padding:4px;background:#161616}
.disconnect-options button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;white-space:nowrap;text-align:left}
.posts-column{min-width:0}
.posts-column h1{margin:0 0 24px}
.dashboard-top{margin-bottom:40px}
#wallet-addresses{margin-top:16px}
.wallet-address{overflow-wrap:anywhere}.wallet-missing{color:#ff00cc}
.wallet-address span{display:inline-block;min-width:32px}
dialog{width:min(360px,calc(100vw - 32px));padding:20px;background:#080808;color:#fff;border:1px solid var(--hairline);border-radius:0;font:inherit;text-transform:uppercase}
dialog::backdrop{background:#000b}
.wallet-dialog-head{display:flex;justify-content:space-between;align-items:center}
.wallet-dialog-head button{padding:0 12px;font-size:var(--site-font-size);line-height:1}
.wallet-choices{display:flex;flex-direction:column;gap:8px;margin-top:24px}
.wallet-choices button{width:100%;text-align:left;padding:8px 12px}
#wallet-back{padding:8px 12px}
#wallet-status{margin:16px 0 0;overflow-wrap:anywhere}
#wallet-status:empty{display:none}
h1,h2{font:inherit;overflow-wrap:anywhere;margin-top:0}
h2{margin:0}
#dashboard-status{margin:0 0 20px;color:#fff}
.score-card{aspect-ratio:1;display:flex;flex-direction:column;justify-content:space-between;padding:32px;background:#fff;color:#080808}
.score-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}
#score-lines .score-line:last-child,#payment-summary .score-line:last-child{margin-bottom:0}
.subtotal{text-align:right}
.receipt-bottom{margin-top:auto}
#payment-summary{margin-bottom:24px}
#post-points-summary{margin-bottom:24px}
.score-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.score-total strong{font:inherit}
.post-card{background:#fff;color:#080808;padding:24px;margin-bottom:16px}
.post-card h2,.post-card p{font:inherit;margin:0 0 16px}
.post-card a,.post-card button{color:#080808;text-decoration:underline;text-underline-offset:3px}
.post-card a:hover,.post-card button:hover{background-color:#ddd}
.post-card button:disabled{opacity:.5;cursor:default}
.post-claim{display:flex;gap:16px;margin-top:20px}
.post-claim input{flex:1;min-width:0;padding:10px;font:inherit;text-transform:uppercase;background:#eee;color:#080808;border:0;border-radius:0}
.post-claim input::placeholder{color:#777;opacity:1}
#card-status{margin:12px 0;color:#fff}
#card-status:empty{display:none}
#leaderboard-list{overflow-x:auto}
.leader-row{display:grid;grid-template-columns:3ch 12ch minmax(16ch,1fr) minmax(10ch,auto);gap:8px;align-items:center;padding:0;min-width:calc(41ch + 24px);white-space:nowrap}
.leader-name,.leader-handle{overflow:hidden;text-overflow:ellipsis}.leader-points{text-align:right}
#leaderboard-view h1{margin:0 0 20px}
#leaderboard-status{margin:16px 0;color:#fff}
@media(max-width:1050px){#public-header{padding-inline:24px}:is(#dashboard,#admin){grid-template-columns:140px minmax(0,1fr) 130px;gap:20px;padding-inline:24px}.score-card{padding:24px}}
@media(max-width:800px){.app-shell{height:auto;overflow:auto}#public-header{max-width:600px}:is(#dashboard,#admin){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr;grid-template-areas:'brand actions' 'content content';max-width:600px;height:auto;min-height:100dvh;gap:24px 8px;padding:16px 16px calc(88px + env(safe-area-inset-bottom));overflow:visible}.site-nav,.right-controls,.main-column{overflow:visible;min-height:0}.site-nav{grid-area:brand;padding-top:0}.site-nav nav{position:fixed;z-index:10;inset:auto 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#000}.site-nav nav a{display:grid;place-items:center;min-height:48px;padding:8px 2px;background:#000;color:#888;text-align:center}.site-nav nav a[aria-current='page']{background:#000;color:#fff}.site-nav nav a:hover{background:#000}.site-nav nav .nav-label{display:block}.site-nav nav .nav-icon{display:none}.main-column{grid-area:content;padding:0;border:0}#dashboard .main-column{overflow:visible;padding-bottom:0}#dashboard .main-column>section{height:auto;overflow:visible;padding-bottom:0}.right-controls{grid-area:actions;display:grid;grid-template-columns:repeat(2,auto);justify-items:end;gap:0 6px;padding-top:0}.right-controls button,.right-controls summary{width:auto;white-space:nowrap;text-align:right}.right-controls #wallet-open{grid-column:1/-1}.disconnect-menu{width:auto}.disconnect-options button{width:100%;text-align:left}.posts-column h1{margin-bottom:16px}}
@media(max-width:600px){#public-header{padding:16px 24px;min-height:64px}#signin{min-height:calc(100svh - 64px)}}
@media(max-width:420px){.score-card{padding:24px;min-height:320px}.post-claim{flex-direction:column;gap:8px}}

@media(max-width:800px){.site-nav nav{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(60px,1fr);overflow-x:auto;overscroll-behavior-x:contain}.site-nav nav a{min-width:60px}}

.nft-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nft-controls select,#nft-recipe,#nft-quantity{font:inherit;color:#fff;background:#161616;border:0;border-radius:0;padding:6px}#nft-quantity{width:64px}.nft-action{padding:6px 10px}.nft-account{font:inherit}.nft-status:empty{display:none}#nft-collection-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#nft-collection-items img{display:block;width:100%;aspect-ratio:1;background:#000;border:0}#nft-burn-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}#nft-burn-items label{display:block;position:relative;cursor:pointer;background:#000}#nft-burn-items input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}#nft-burn-items .nft-artwork:has(input:checked)::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px #fff;pointer-events:none}#nft-burn-items .nft-artwork:has(input:checked)::before{content:"✓";position:absolute;right:12px;top:12px;color:#fff;z-index:2;pointer-events:none}#nft-config-form input:not([type=datetime-local]),#nft-config-form textarea{text-transform:none;max-width:100%}
.nft-wallet,#nft-admin-body input,#nft-admin-body textarea,#nft-admin-body select,#mint-view input{font:inherit;color:#fff;background:#161616;border:0;border-radius:0;padding:6px;max-width:100%;box-sizing:border-box}#nft-admin-body label,#mint-view label{display:flex;flex-direction:column;gap:4px}#nft-admin-body input[type=checkbox]{align-self:flex-start}#nft-admin-body details{margin:10px 0}#nft-admin-body textarea{min-height:90px;text-transform:none}#nft-admin-body img{max-width:100%;background:#000}#nft-burn-items img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}#nft-admin-body .card-form{overflow-wrap:anywhere}dialog button{padding:8px 12px}dialog p{overflow-wrap:anywhere}
.nft-action-status{margin:0;width:100%;overflow-wrap:anywhere;white-space:pre-wrap}.nft-action-status:empty{display:none}

#nft-recipe,.nft-burn-controls,.nft-burn-controls>.nft-action{width:100%;box-sizing:border-box}.nft-burn-controls>.nft-action{display:block;text-align:left;padding:10px}

.site-nav #admin-link,#money-admin-link{color:#ff00cc}

#nft-burn-items .burn-rejected{position:absolute;inset:0;z-index:2;border:2px solid #f00;pointer-events:none}

:is(#nft-burn-items,#nft-collection-items) .nft-title{padding-top:4px;overflow-wrap:anywhere}.nft-artwork{position:relative;aspect-ratio:1}.nft-sidebar-wallet>button:first-child{display:block;margin-left:auto}.nft-sidebar-wallet .nft-wallet{width:100%}

.main-column button{background:#fff;color:#000}.main-column button:hover{background:#ddd}.main-column button:disabled{cursor:default}#join-whitelist{display:block;width:100%;margin-top:12px;padding:10px;text-align:left}

#nft-burn-items.burn-complete .nft-artwork:has(input:checked)::before{color:rgb(0,255,0)}

.burn-notification p{margin:0 0 16px}.burn-notification button{display:block;width:100%;background:#fff;color:#000}

.nft-sentinel{height:1px;width:100%}.nft-skeleton,.nft-artwork.is-loading{aspect-ratio:1;background:linear-gradient(90deg,#111 25%,#222 50%,#111 75%);background-size:200% 100%;animation:nft-skeleton 1.4s linear infinite}.nft-artwork.is-loading img{opacity:0}@keyframes nft-skeleton{from{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.nft-skeleton,.nft-artwork.is-loading{animation:none;background:#161616}}

#join-whitelist .whitelist-check{margin-left:8px;color:rgb(0,255,0)}

.text-skeleton{color:transparent!important;background:linear-gradient(90deg,#161616 25%,#292929 50%,#161616 75%)!important;background-size:200% 100%!important;animation:nft-skeleton 1.4s linear infinite;pointer-events:none;user-select:none;border-radius:0}
#wallet-addresses{min-height:3em}.wallet-placeholder{height:1.5em;width:min(100%,44ch)}.wallet-placeholder+.wallet-placeholder{width:min(100%,40ch)}
.score-card .text-skeleton{min-width:8ch;background-image:linear-gradient(90deg,#ddd 25%,#eee 50%,#ddd 75%)!important}
.nft-title{min-height:calc(1.5em + 4px)}.nft-placeholder .nft-title{background-clip:content-box!important;width:65%}
@media(prefers-reduced-motion:reduce){.text-skeleton{animation:none}}

:is(.nft-status,.nft-action-status).is-confirming{display:grid;place-items:center;width:100%;min-height:38px;margin:0;padding:10px 12px;color:#fff;background:linear-gradient(90deg,#111 0%,#111 25%,#383838 50%,#111 75%,#111 100%);background-size:200% 100%;animation:confirmation-gradient 1.6s linear infinite;border:0;border-radius:0;text-align:center}
@keyframes confirmation-gradient{from{background-position:200% 0}to{background-position:0 0}}
@media(prefers-reduced-motion:reduce){:is(.nft-status,.nft-action-status).is-confirming{animation:none;background-position:50% 0}}

.recipe-card{margin:0 0 8px;background:#111}.recipe-card summary{padding:12px;cursor:pointer;list-style:none}.recipe-card summary::-webkit-details-marker{display:none}.recipe-card summary::after{content:'+';float:right}.recipe-card[open] summary::after{content:'−'}.recipe-card .nft-action{display:block;width:100%;padding:10px 12px;text-align:left}.recipe-card .nft-action-status:not(:empty){padding:10px 12px}

:root{--control-height:30px}
button,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=image]),select{box-sizing:border-box;height:var(--control-height)!important;min-height:var(--control-height)!important;padding-block:0!important;line-height:normal;flex-shrink:0}
input[type=file]::file-selector-button{box-sizing:border-box;height:var(--control-height);padding-block:0!important;font:inherit}
.disconnect-menu summary{height:var(--control-height);display:flex;align-items:center}
:is(.nft-status,.nft-action-status).is-confirming{min-height:var(--control-height);padding-block:0}

.dialog-close-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.dialog-close-row>:not(.dialog-close){margin:0;min-width:0}
.dialog-close-row .dialog-close{flex-shrink:0;margin-left:auto}
dialog .dialog-close{display:grid;place-items:center;width:var(--control-height);min-width:var(--control-height);padding:0;margin:0;background:#fff;color:#000;border:0;border-radius:0;line-height:1}
dialog .dialog-close:hover{background:#ddd}
#wallet-dialog .wallet-choices button{display:block;width:100%;padding-inline:12px;background:#fff;color:#000;text-align:left}
#wallet-dialog .wallet-choices button:hover{background:#ddd}
.nft-sidebar-wallet>.nft-action{display:block;width:100%;background:#fff;color:#000;text-align:left;padding-inline:12px}

.post-card h2,.post-card p{text-transform:none;white-space:pre-wrap}

.post-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;white-space:nowrap}.post-card .post-meta p{margin:0}.saved-post{display:block;margin-top:16px}

.mint-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end}.mint-row>label,.mint-row input,.mint-row>button{width:100%;min-width:0}.mint-row>.nft-action-status{grid-column:1/-1}

.nft-artwork{border:1px solid var(--hairline);box-sizing:border-box;overflow:hidden}
#nft-collection-items .nft-artwork{display:block;width:100%;padding:0;background:#000;color:inherit;border-radius:0}
#nft-burn-items .nft-artwork{margin:0}
.main-column .nft-detail-link{display:block;width:100%;padding:4px 0 0;background:transparent;color:#fff;border:0;text-align:left}
.main-column .nft-detail-link:hover{background:#202020}
.artwork-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.artwork-detail-header h1{margin:0!important;min-width:0;font:inherit;overflow-wrap:anywhere}
.artwork-detail-header button{width:30px;min-width:30px;height:30px;padding:0;border:0;border-radius:0}
.artwork-detail-image{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#000;border:1px solid var(--hairline);box-sizing:border-box}
.artwork-detail-traits{margin:16px 0 0}
.artwork-detail-traits>div{display:flex;justify-content:space-between;gap:16px;padding:4px 0;overflow-wrap:anywhere}
.artwork-detail-traits dd{margin:0;text-align:right}
#artwork-view[hidden]{display:none}
.main-column,#dashboard .main-column>section{scrollbar-color:#fff transparent;scrollbar-width:thin}
.main-column::-webkit-scrollbar,#dashboard .main-column>section::-webkit-scrollbar{width:6px;height:6px}
.main-column::-webkit-scrollbar-thumb,#dashboard .main-column>section::-webkit-scrollbar-thumb{background:#fff;border:0;border-radius:0}
.main-column::-webkit-scrollbar-track,#dashboard .main-column>section::-webkit-scrollbar-track{background:transparent;border:0}
.main-column::-webkit-scrollbar-button,#dashboard .main-column>section::-webkit-scrollbar-button{display:none}
@supports selector(::-webkit-scrollbar){.main-column,#dashboard .main-column>section{scrollbar-width:auto}}
@media(min-width:801px){#dashboard .main-column{padding:0}#dashboard .main-column>section{padding:20px 16px 40px;box-sizing:border-box}}

#nft-collection-items button.nft-artwork,#admin .card-form>button.artwork-preview-button{height:auto!important;min-height:0!important;aspect-ratio:1/1}
#nft-collection-items .nft-artwork img{height:100%;object-fit:contain}

.nft-page-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.nft-page-header h1{margin:0;flex-shrink:0}
.nft-page-header .nft-status{margin:0;min-width:0;color:#ff00cc;text-align:right;overflow-wrap:anywhere}

.nft-card-caption{display:flex;align-items:baseline;gap:8px}
.nft-card-caption .nft-title{flex:1;min-width:0;width:auto}
.nft-token-id{flex-shrink:0;margin-left:auto;color:#ff00cc;text-align:right;white-space:nowrap}

.nft-review-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
.nft-review-actions button{width:100%;background:#fff;color:#000}
.nft-review-actions button:hover{background:#ddd}

#refresh{color:#ff00cc}#refresh:disabled{color:#ff00cc;opacity:1}

.x-connected-check{color:#00ff00}

.x-profile-link{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:11;display:grid;place-items:center;width:40px;height:40px;color:#fff}.x-profile-link svg,.nav-x-link svg{width:var(--site-font-size);height:var(--site-font-size)}.site-nav nav .nav-x-link{display:none}@media(max-width:800px){.site-nav nav{padding-right:8px}.site-nav nav .nav-x-link{display:grid}.app-shell>.x-profile-link{display:none}.x-profile-link{right:8px;bottom:calc(12px + env(safe-area-inset-bottom))}}

.wallet-confirmed{color:#00ff00;margin-left:8px}.wallet-unconfirmed{color:#ff0000;margin-left:8px}.manual-wallet-form{margin-top:16px}.manual-wallet-form>div{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:8px}.manual-wallet-form input{width:100%;min-width:0;text-transform:none}.manual-wallet-form button{background:#fff;color:#000}
