/* Shared control families and spacing. Home keeps its chapter and glass controls. */
:root{--motion-ease:cubic-bezier(.22,.75,.2,1);--motion-page:.48s;--motion-step:.36s;--motion-disclosure:.26s;--motion-control:.18s;--mobile-gutter:16px;--mobile-nav-height:64px;--mobile-topbar-height:48px;--field-height:38px;--utility-height:36px;--primary-height:42px;--compact-control-height:36px}
#characterList,#personaCoinList,#accountFeeList{position:relative;align-content:start}
:is(a,button,summary,[role="button"]),#personaCoinList .persona-coin-card{-webkit-tap-highlight-color:transparent}
.ui-search-exit{position:absolute!important;z-index:1;pointer-events:none!important;user-select:none;animation:none!important;transition:none!important}
.ui-search-exit *{pointer-events:none!important;animation:none!important;transition:none!important}

/* Launch is the common search reference, including boot and loaded directory markup. */
.page-view .search-shell{box-sizing:border-box;display:flex;align-items:center;gap:6px;height:var(--field-height);min-height:var(--field-height);padding:0 10px;border:1px solid #39303f;border-radius:8px;background:#0b0a10;color:#ded8e8}
.page-view .search-shell>svg{position:static;transform:none;flex:none;width:16px;height:16px;color:#736880;pointer-events:none}
.page-view .search-shell>input[type="search"]{box-sizing:border-box;flex:1;min-width:0;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:#ded8e8;font:400 14px/20px 'DM Sans',sans-serif;outline:none}
.page-view .search-shell>input::placeholder{color:#998da7;opacity:1}
.page-view .search-shell:focus-within{border-color:#9673ba;box-shadow:0 0 0 1px #9673ba44}
@media(max-width:740px){.page-view .search-shell>svg{width:15px;height:15px}}

/* Both help systems use the Rewards surface; inner scrolling leaves the pointer visible. */
.help-popover{position:fixed;z-index:150;box-sizing:border-box;max-width:calc(100vw - 24px);padding:10px 12px;border:1px solid #594269;border-radius:10px;background:#211729;color:#d5c3e2;font:400 13px/1.5 'DM Sans',sans-serif;box-shadow:0 10px 28px #0006;overflow-wrap:anywhere;white-space:pre-line}
.help-popover[hidden]{display:none!important}
.help-popover-content{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.help-popover::before{content:'';position:absolute;left:calc(var(--help-arrow-left) - 4px);top:-5px;width:8px;height:8px;border:solid #594269;border-width:1px 0 0 1px;background:#211729;transform:rotate(45deg)}
.help-popover[data-side=above]::before{top:auto;bottom:-5px;border-width:0 1px 1px 0}

/* One footer is present in each non-Home shell, before or after its data loads. */
body:has(:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden])){display:flex;flex-direction:column;min-height:100dvh}
body:has(:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden])) .app-shell{display:flex;flex:1;flex-direction:column;min-height:0;height:auto}
body:has(:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden]))>.sidebar,body:has(:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden])) .topbar{flex-shrink:0}
.app-shell>:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden]){display:flex;flex-direction:column;flex:1;width:100%;min-height:0;margin-block:0;--page-footer-gap:20px}
:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView)>:not(.page-footer-space){flex-shrink:0}
.page-view>.page-footer-space{flex:1 0 var(--page-footer-gap);min-height:var(--page-footer-gap)}
:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView){padding-bottom:0}
.page-view>.main-footer{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-height:0;height:auto;margin:0;padding:14px 0 calc(14px + env(safe-area-inset-bottom));border-top:1px solid #302838;font-size:12px;line-height:18px}
.page-view>.main-footer>span,.footer-platform-credits>span{display:inline-flex;align-items:center;gap:7px}
.page-view>.main-footer>span>svg{width:16px;height:16px;flex:none}
.footer-platform-credits{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.footer-platform-credits .meteora-mark{display:block;flex:none;width:20px;height:20px;object-fit:contain;margin-left:-4px}
.page-context-links{margin:12px 0 0;font-size:12px;line-height:18px}
@media(max-width:740px){.app-shell>:is(#launchView,#coinsView,#feesView,#payoutsView,#docsView):not([hidden]){--page-footer-gap:16px}.page-view>.main-footer{padding-block:10px calc(10px + env(safe-area-inset-bottom));gap:6px 8px}.footer-platform-credits{gap:8px}}


#launchView .launch-back{display:inline-flex;align-items:center;gap:6px;min-height:var(--utility-height);padding:6px 0;margin:0 0 10px;color:#c5b4d7;font-size:13px;line-height:1.4;background:transparent;border-radius:8px;transition:color var(--motion-control),opacity var(--motion-control)}
#launchView .launch-back svg{width:17px;height:17px;transform:rotate(180deg)}
#launchView .launch-back:hover:not(:disabled){color:#f1e8ff}
#launchView .launch-back:disabled{opacity:.45;cursor:default}
#launchView #detailsForm>.panel-actions{position:static;justify-content:flex-end;margin-top:16px;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
@media(max-width:520px){#launchView #detailsForm>.panel-actions>.primary{width:100%}}
#launchView .upload-button{min-height:var(--utility-height);padding:6px 12px;border-radius:9px;align-items:center;justify-content:center;transition:background var(--motion-control),border-color var(--motion-control)}
#launchView #removeImage,#launchView [data-wallet-check]{min-height:var(--utility-height);display:inline-flex;align-items:center}
.launch-confirmation .launch-approval-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#bda7cf;margin:0 0 12px}
#kolProfileDialog .kol-profile-close::before,.close-dialog::before{content:'';position:absolute;inset:-7px;border-radius:50%}

/* Launch steps move as one content region; the heading, navigation and wallet stay still. */
:root[data-launch-direction] #launchView>.workspace{view-transition-name:launch-workspace}
:root[data-launch-direction="forward"]{--launch-enter:100%;--launch-exit:-100%}
:root[data-launch-direction="back"]{--launch-enter:-100%;--launch-exit:100%}
:root[data-launch-direction]::view-transition-group(root){animation:none}
:root[data-launch-direction]::view-transition-old(root){animation:none;opacity:0}
:root[data-launch-direction]::view-transition-new(root){animation:none;opacity:1}
:root[data-launch-direction]::view-transition-group(launch-workspace){animation-duration:var(--motion-step);animation-timing-function:var(--motion-ease);overflow:clip}
:root[data-launch-direction]::view-transition-image-pair(launch-workspace){isolation:isolate}
:root[data-launch-direction]::view-transition-old(launch-workspace){animation:launch-slide-out var(--motion-step) var(--motion-ease) both;mix-blend-mode:normal}
:root[data-launch-direction]::view-transition-new(launch-workspace){animation:launch-slide-in var(--motion-step) var(--motion-ease) both;mix-blend-mode:normal}
@keyframes launch-slide-in{from{transform:translateX(var(--launch-enter));opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes launch-slide-out{from{transform:translateX(0);opacity:1}to{transform:translateX(var(--launch-exit));opacity:0}}

/* One disclosure marker and touch target across forms, coin details and rewards. */
:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure>summary{display:flex;align-items:center;gap:10px;min-height:32px;list-style:none;cursor:pointer}
:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure>summary::-webkit-details-marker{display:none}
:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure>summary::after{content:'';display:block;width:7px;height:7px;flex:none;margin:0 4px 0 auto;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);color:#b699cc;transition:transform var(--motion-disclosure) var(--motion-ease)}
:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure[open]>summary::after{transform:rotate(225deg)}
:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure[data-disclosure-closing="true"]>summary::after{transform:rotate(45deg)}
#launchView #step1>.directory-info>summary{min-height:32px}
@supports (interpolate-size:allow-keywords) and selector(details::details-content){
 details.ui-disclosure{interpolate-size:allow-keywords}
 /* Contain child margins so the animated size matches the final open layout. */
 details.ui-disclosure::details-content{display:flow-root;block-size:0;overflow:clip;opacity:0;transition:block-size var(--motion-disclosure) var(--motion-ease),opacity .2s ease,content-visibility var(--motion-disclosure) allow-discrete}
 details.ui-disclosure[open]::details-content{block-size:auto;opacity:1}
}
.kol-sort-options{opacity:1;transform:translateY(0);transition:opacity var(--motion-control) ease,transform var(--motion-control) var(--motion-ease),display var(--motion-control) allow-discrete}
.kol-sort-options[hidden]{opacity:0;transform:translateY(-6px)}
@starting-style{.kol-sort-options:not([hidden]){opacity:0;transform:translateY(-6px)}}
@media(prefers-reduced-motion:reduce){
 :root[data-launch-direction]::view-transition-group(*),:root[data-launch-direction]::view-transition-old(*),:root[data-launch-direction]::view-transition-new(*){animation:none!important}
 details.ui-disclosure::details-content,:is(#launchView,#coinsView,#feesView,#docsView,#kolProfileDialog) details.ui-disclosure>summary::after,.kol-sort-options{transition:none!important}
}

/* Approval states use the same timing as disclosures, without blocking input. */
#step3 .launch-confirmation{scroll-margin-block:24px;box-sizing:border-box;transition:background-color var(--motion-disclosure) var(--motion-ease),border-color var(--motion-disclosure) var(--motion-ease)}
#step3 .launch-signing-progress li,#step3 .launch-signing-progress li>span{transition:color var(--motion-control),background-color var(--motion-control),border-color var(--motion-control)}
#step3 .launch-primary-action button{transition:background-color var(--motion-control),color var(--motion-control),opacity var(--motion-control),box-shadow var(--motion-control)}
@media(prefers-reduced-motion:reduce){#step3 .launch-confirmation,#step3 .launch-signing-progress li,#step3 .launch-signing-progress li>span,#step3 .launch-primary-action button{transition:none!important}}

#launchView #step3 .launch-confirmation{max-width:none}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

/* Wallet modal follows the same gentle reveal and control rhythm. */
#walletDialog{box-sizing:border-box;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:22px}
#walletDialog .wallet-heading{display:flex;align-items:center;gap:10px;min-width:0;min-height:40px;padding-right:34px;margin-bottom:12px}
#walletDialog .wallet-heading .wallet-logo{flex:none;width:40px;height:40px;margin:0}
#walletDialog .wallet-heading h2{min-width:0;margin:0;font-size:22px;line-height:1.2;overflow-wrap:anywhere}
#walletDialog>p:not(.field-error):not(.dialog-note){font-size:13px;line-height:19px;margin:0 0 12px}
#walletDialog .dialog-note{font-size:12px;line-height:18px;margin:12px 0 0}
#walletDialog .dialog-note strong{font-weight:600;color:#cbb5dd}
#walletDialog .wallet-option{min-height:56px;padding:8px 10px;margin-top:12px;gap:10px}
#walletDialog .wallet-option strong{font-size:13px;line-height:18px}
#walletDialog .wallet-option small{font-size:12px;line-height:17px}
#walletDialog .phantom-glyph{font-size:22px}
#walletDialog #walletAddress{padding:9px 10px;font-size:12px;line-height:18px;overflow-wrap:anywhere}
@media(max-width:740px){
 /* Keep a full 44-character address together on narrow phone screens. */
 #walletDialog #walletAddress{padding-inline:10px;font-size:clamp(9px,calc(4vw - 4px),12px)}
}
#walletDialog #phantomInstall{margin-top:12px}
#walletDialog #phantomInstall p{font-size:13px;line-height:1.5}
#walletDialog::backdrop{background:rgba(5,3,10,.72)}
#walletDialog[data-wallet-motion="opening"]::backdrop{animation:wallet-backdrop-in var(--motion-disclosure) var(--motion-ease) both}
#walletDialog[data-wallet-motion="closing"]::backdrop{animation:wallet-backdrop-out .14s cubic-bezier(.4,0,1,1) both}
#walletDialog .close-dialog{display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;top:12px;right:12px;padding:0;font-size:20px;line-height:1;border-radius:50%}
#walletDialog .close-dialog::before{inset:-4px}
#walletDialog :is(button,a){transition:color var(--motion-control),background-color var(--motion-control),border-color var(--motion-control),opacity var(--motion-control),transform var(--motion-control)}
#walletDialog .wallet-option .phantom-glyph{transition:transform var(--motion-control) var(--motion-ease)}
#walletDialog .wallet-option:hover:not(:disabled) .phantom-glyph{transform:translateY(-2px)}
#walletDialog .close-dialog:hover{background:#b890e014;color:#f0e6fa}
#walletDialog button:disabled{opacity:.6}
#walletDialog .wallet-actions :is(button,a){min-height:var(--utility-height);padding:6px 10px;font-size:12px;line-height:20px;display:inline-flex;align-items:center}
#walletDialog #walletAccount{margin-top:12px}
#walletDialog .wallet-actions{gap:8px;margin:8px 0 0}
#walletDialog #walletAccount:not([hidden])~.dialog-note{margin:12px 0 0}
#walletError:empty{display:none}
@keyframes wallet-backdrop-in{from{background:rgba(5,3,10,0)}to{background:rgba(5,3,10,.72)}}
@keyframes wallet-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#walletDialog::backdrop{animation:none!important}#walletDialog :is(button,a,.phantom-glyph){transition:none!important}}

/* Route and step headings receive focus for announcements, not as controls. */
.page-view :is(h1,h2,h3)[tabindex="-1"]:focus{outline:none}

.launch-recipient{display:none}
#launchView .launch-recipient-label{display:block;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0;color:#d1bfdf;margin-bottom:8px}
#launchView .paired{margin:0 0 20px;padding:0 0 20px;border-top:0;border-bottom:1px solid #302838}
#launchView :is(.recipient-identity,#pairedCharacter){display:flex;align-items:center;gap:12px;min-width:0}
#launchView .recipient-copy{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
#launchView .recipient-copy strong{font-size:16px;line-height:1.4;color:#eee5f7;overflow-wrap:anywhere;text-wrap:balance}
#launchView :is(#pairedCharacter,#launchRecipientAvatar,#reviewRecipientAvatar) .avatar,#launchView #pairedCharacter .empty-avatar{width:44px;height:44px;flex:0 0 44px;font-size:15px;border-radius:50%;overflow:hidden}
#launchView :is(#launchRecipientAvatar,#reviewRecipientAvatar){display:flex;flex:none}
#launchView .paired-wallet{font:12px/1.4 'DM Sans',sans-serif;color:#bca5d0;white-space:nowrap}
#launchView .recipient-copy>.review-wallet{margin:0;padding:0;min-height:0;max-width:100%;text-align:left;font:12px/1.4 'DM Sans',sans-serif;color:#bca5d0;white-space:normal;overflow-wrap:anywhere}
#launchView .launch-review-recipient{margin:12px 0}
@media(max-width:740px){
 #launchView .launch-recipient:not([hidden]){display:block;width:100%;margin:0 0 24px;padding:0}
 #launchView .launch-recipient-label{font-size:12px;margin-bottom:6px}
 #launchView .recipient-identity{gap:10px}
 #launchView :is(#launchRecipientAvatar,#reviewRecipientAvatar) .avatar{width:36px;height:36px;flex-basis:36px;font-size:12px}
 #launchView .recipient-copy strong{font-size:14px}
 #launchView #detailsForm>.panel-heading{margin-bottom:20px}
 #launchView>.page-heading .text-button{max-width:none;white-space:nowrap;flex:none;gap:6px}
}
@media(pointer:coarse){.coin-ca-copy{min-height:44px}}

/* Shared sizes are scoped to controls with the same purpose. */
.topbar .wallet-button{min-height:var(--utility-height);padding:6px 12px;gap:6px;font-size:12px;line-height:20px}
.page-view:not(.home-view) :is(.primary,.outline-button){line-height:20px}
.page-view:not(.home-view) .primary{min-height:var(--primary-height);padding:8px 12px}
.page-view:not(.home-view) .outline-button{min-height:var(--utility-height);padding:6px 10px}
.page-view .coin-pagination button,#docsView .docs-nav a{min-height:var(--utility-height);padding:6px 10px;display:inline-flex;align-items:center}
#launchView #detailsForm :is(.field,.field-row>label,.input-prefix)>input:not([type="file"]){height:var(--field-height);min-height:var(--field-height);padding:8px 10px;font-size:14px;line-height:20px}
#launchView #detailsForm .input-prefix{margin-top:0}
#launchView #detailsForm #coinTicker{margin-top:0;padding-left:24px}
#launchView #detailsForm .input-prefix>span{top:50%;transform:translateY(-50%);font-size:14px;line-height:20px}
#launchView #detailsForm .field-row>label{display:flex;flex-direction:column;gap:4px}
#launchView #detailsForm .field-row>label>input{margin-top:0}
#launchView #detailsForm textarea{display:block;height:84px;min-height:84px;padding:7px 10px;font-size:14px;line-height:20px;margin-top:4px}
#launchView #detailsForm label.field{margin-bottom:10px}
#launchView #detailsForm .field small{margin-top:4px}
#launchView #detailsForm .field-row{margin-bottom:10px}
#launchView #detailsForm :is(.launch-rewards,.optional-buy){margin-top:10px;padding-top:10px}
#launchView #detailsForm .launch-rewards{margin-bottom:0}
#launchView #detailsForm .launch-rewards>p{margin:4px 0 6px}
#launchView #detailsForm .reward-options{margin-block:6px;gap:8px}
#launchView #detailsForm .reward-options label{min-height:0;padding:8px 10px;gap:8px}
#launchView #detailsForm .social-details{padding:0;border-top:0}
#launchView #detailsForm .social-details label:first-of-type{margin-top:6px}
#launchView #detailsForm .social-details>div{padding-top:6px}
#launchView #detailsForm .social-details p{margin:0 0 6px;font-size:12px;line-height:1.5}
#launchView #detailsForm .launch-rewards .launch-disclosure>div{padding-top:6px}
#launchView #detailsForm .launch-rewards .launch-disclosure p{margin:0 0 6px;font-size:12px;line-height:1.5}
@media(max-width:740px){
 :root{--field-height:36px;--utility-height:34px;--primary-height:40px;--compact-control-height:34px}
 .topbar .wallet-button{padding:6px 9px;line-height:20px}
 #launchView #detailsForm :is(.field,.field-row>label,.input-prefix)>input:not([type="file"]){padding-block:7px}
 #launchView #detailsForm textarea{height:74px;min-height:74px;padding-block:6px}
 #launchView #detailsForm :is(.field-row,label.field){margin-bottom:8px}
 #launchView #detailsForm :is(.launch-rewards,.optional-buy){margin-top:8px;padding-top:8px}
 #launchView #detailsForm .launch-rewards{margin-bottom:0}
 #launchView #detailsForm>.panel-actions{margin-top:12px}
 #coinsView .coin-history-range{min-height:0}
}

/* Wallet readiness and fields share the left column; the preview aligns to their top. */
#launchView .launch-notices{position:relative;display:flow-root}
#launchView .launch-notices>.wallet-ready-compact{width:100%;max-width:none;margin:0 0 18px}
#launchView:not([data-step="2"]) .launch-notices>.wallet-ready-compact{display:none}
#launchView .launch-notices>[data-notice-ghost]{user-select:none}

#launchView .launch-form-column{min-width:0}

/* Public page headings share a caption, title and aligned action at every width. */
:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 16px;margin:0 0 20px}
:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading>div{display:contents}
:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading .eyebrow{display:block;grid-column:1/-1;grid-row:1;color:#b2a0d6;font-size:11px;line-height:1.3;letter-spacing:1.2px;margin:0}
:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading h1{grid-column:1;grid-row:2;min-width:0;font-size:40px;margin:0;line-height:1.14}
:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading>:is(.primary,.text-button){grid-column:2;grid-row:2;align-self:center;margin:0}
#docsView>.page-heading{grid-template-columns:minmax(0,1fr)}
@media(max-width:1100px){:is(#launchView,#coinsView,#feesView,#docsView)>.page-heading h1{font-size:36px}}

/* All tool pages use the same heading rhythm. Reading content keeps its own type scale. */
#docsView .docs-topic-menu{position:sticky;top:90px;min-width:0}
#docsView .docs-topic-toggle{display:none}
#docsView .docs-topic-menu .docs-nav{position:static}
#docsView .docs-topic-panel{min-width:0}
#docsView .docs-topic-group{display:flex;flex-direction:column;gap:3px;min-width:0;margin-top:16px}
#docsView .docs-topic-group:first-child{margin-top:0}
#docsView .docs-topic-group>header{padding:0 10px 9px}
#docsView .docs-topic-group h2{margin:0;color:#c1a4d7;font-size:11px;font-weight:600;line-height:1.5;letter-spacing:1px;text-transform:uppercase}
#docsView .docs-topic-group-label{display:block;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer}
#docsView .docs-topic-group-label:hover{color:#dfbaf9}
#docsView .docs-topic-group-label:focus-visible{outline:2px solid #bc93f4;outline-offset:4px;border-radius:3px}
#docsView .docs-topic-links{display:flex;flex-direction:column;gap:3px;min-width:0}
#docsView .docs-topic-menu .docs-nav a.active{border:0;border-left:2px solid #b28cdd;border-radius:5px;background:#2c1b38;color:#dfbaf9}
#docsView .docs-topic-scroll{display:none}
@media(max-width:740px){
 .page-view:not(.home-view){padding-top:16px;padding-inline:var(--mobile-gutter)}
 .page-view>.page-heading{margin:0 0 16px;gap:8px}
 .page-view>.page-heading h1{font-size:26px!important;margin:0 0 4px;line-height:1.15}
 .page-view>.page-heading p{font-size:13px;line-height:1.5}
 .page-view>.page-heading>.primary{min-height:var(--primary-height)}
 #feesView>.page-heading{margin:0 0 16px}
 #feesView>.page-heading h1{font-size:26px!important}
 #launchView,#launchView[data-step="1"]{padding-top:16px;padding-inline:var(--mobile-gutter);--launch-gutter:var(--mobile-gutter)}
 #launchView>.page-heading{margin-bottom:12px}
 #launchView>.page-heading .text-button{min-height:36px;max-width:none;margin:0;font-size:12px}
 #launchView>.stepper,#launchView[data-step="1"]>.stepper{padding-block:10px;margin-bottom:14px}
 #launchView[data-step="1"] .editor{padding:14px 12px 10px}
 #docsView .docs-topic-menu{position:static;margin-bottom:12px}
 #docsView .docs-topic-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;padding:9px 12px;border:1px solid #44344f;border-radius:10px;background:#19131f;text-align:left;color:#dfcfee}
 #docsView .docs-topic-copy{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}
 #docsView .docs-topic-label{color:#aa93bd;font-size:11px;line-height:1.4}
 #docsView #docsCurrentTopic{font-size:13px;line-height:1.5;font-weight:500;overflow-wrap:anywhere}
 #docsView .docs-topic-chevron{width:18px;height:18px;color:#bea0d5;transition:transform var(--motion-disclosure) var(--motion-ease)}
 #docsView .docs-topic-toggle[aria-expanded="true"]{border-color:#7c5c96;background:#21172b}
 #docsView .docs-topic-toggle[aria-expanded="true"] .docs-topic-chevron{transform:rotate(180deg)}
 #docsView .docs-topic-toggle:hover{border-color:#8b67a8}
 #docsView .docs-topic-toggle:focus-visible{outline:2px solid #bc93f4;outline-offset:3px}
 #docsView .docs-topic-menu[data-state="closed"] .docs-topic-panel{display:none}
 #docsView .docs-topic-panel{--docs-menu-height:min(60dvh,460px);margin-top:6px;border:1px solid #44344f;border-radius:10px;background:#151019;overflow:clip;overflow-anchor:none}
 #docsView .docs-topic-menu .docs-nav{display:flex;flex-direction:column;align-items:stretch;gap:3px;max-height:var(--docs-menu-height);margin:0;padding:8px;border:0;border-radius:0;background:transparent;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9b7bb4 #21172a;white-space:normal}
 #docsView .docs-topic-panel[data-scrollable="true"] .docs-nav{max-height:calc(var(--docs-menu-height) - 43px)}
 #docsView .docs-topic-group{flex:none;gap:3px;margin:0}
 #docsView .docs-topic-group>header{margin:12px 10px 4px;padding:0}
 #docsView .docs-topic-group:first-child>header{margin-top:2px}
 #docsView .docs-topic-menu .docs-nav a{justify-content:space-between;gap:10px;flex:none;min-height:38px;padding:8px 10px;border:1px solid transparent;border-radius:7px;color:#bba6ca;font-size:13px;line-height:1.5;white-space:normal}
 #docsView .docs-topic-menu .docs-nav a:hover:not(.active){background:#251a30;color:#eedff9}
 #docsView .docs-topic-scroll:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:5px 10px;border-top:1px solid #4b365a;background:#251a2e;color:#cfb7e0;font-size:11px;line-height:1.4}
 #docsView .docs-topic-scroll-actions{display:flex;gap:5px;flex:none}
 #docsView .docs-topic-scroll-button{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid #674b7c;border-radius:6px;background:#30213d;color:#e4cff3;transition:background var(--motion-disclosure) var(--motion-ease),opacity var(--motion-disclosure) var(--motion-ease)}
 #docsView .docs-topic-scroll-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
 #docsView .docs-topic-scroll-button:hover:not(:disabled){background:#49315b}
 #docsView .docs-topic-scroll-button:disabled{opacity:.35;cursor:default}
 #docsView .docs-topic-scroll-button:focus-visible{outline:2px solid #bc93f4;outline-offset:2px}
 #docsView .docs-article{padding:16px 14px;margin-bottom:20px}
 #docsView .docs-article>h2:first-of-type{font-size:25px;margin:8px 0 10px}
 #docsView .docs-article h2:not(:first-of-type){margin:18px 0 8px}
 #docsView .docs-article :is(p,li){font-size:13.5px;line-height:22px}
 #docsView .docs-article p{margin-block:8px}
 #docsView .docs-article :is(ul,ol){margin-block:8px}
 #docsView .docs-article li{margin-block:4px}
 #docsView .docs-article :is(table,pre){margin-block:12px}
 #docsView .docs-article .article-lead{font-size:14px;line-height:23px;margin:8px 0 14px}
 #docsView .doc-callout{padding:12px 14px;margin-block:12px}
 #docsView .doc-callout p:first-child{margin-top:0}
 #docsView .doc-callout p:last-child{margin-bottom:0}
 #walletDialog{padding:16px 14px}
 #walletDialog .wallet-heading{gap:8px;min-height:32px}
 #walletDialog .wallet-heading .wallet-logo{width:32px;height:32px}
 #walletDialog .wallet-heading h2{font-size:20px}
}
@media(prefers-reduced-motion:reduce){#docsView :is(.docs-topic-chevron,.docs-topic-scroll-button){transition:none}}

/* Keep the form in one column until there is space for both it and the preview. */
@media(max-width:900px){
 #launchView .workspace{grid-template-columns:1fr;gap:16px}
 #launchView .preview-column{display:none}
 #launchView .launch-recipient:not([hidden]){display:block;width:100%;padding:0}
 #launchView:is([data-step="2"],[data-step="3"]) .editor{padding:14px 12px}
 #launchView :is(#detailsForm,#step3)>.panel-heading{margin-bottom:14px}
 #launchView :is(#detailsForm,#step3)>.panel-heading h3{font-size:20px;line-height:1.3}
 #launchView :is(#detailsForm,#step3)>.panel-heading p{font-size:13px;line-height:1.5;margin-top:4px}
 #launchView :is(#detailsForm,#step3)>.launch-back{min-height:36px;padding-block:6px;margin-bottom:8px;font-size:12px}
 #launchView #detailsForm :is(.field,.field-row>label){font-size:12px}
 #launchView #detailsForm .field-row>label{display:flex;flex-direction:column;gap:4px}
 #launchView #detailsForm .field small{font-size:11px;line-height:1.55;margin-top:4px}
 #launchView #detailsForm .field-row{gap:10px}
 #launchView #detailsForm .launch-recipient:not([hidden]){margin-bottom:12px}
 #launchView #detailsForm .launch-artwork{padding:10px;gap:6px;margin-block:10px}
 #launchView #detailsForm .launch-artwork .upload-icon{width:36px;height:36px}
 #launchView #detailsForm .launch-artwork strong{font-size:13px}
 #launchView #detailsForm .launch-artwork .upload-button{min-height:var(--utility-height);padding:6px 10px}
 #launchView #detailsForm .social-details{padding-block:0}
 #launchView #detailsForm .social-details label:first-of-type{margin-top:6px}
 #launchView #detailsForm .launch-section-title{gap:8px}
 #launchView #detailsForm .launch-section-title h4{font-size:14px}
 #launchView #detailsForm .launch-rewards>.launch-disclosure{padding-block:0}
 #launchView #detailsForm .optional-buy input{margin-top:6px}
 #launchView #detailsForm .reward-options strong{font-size:13px}
 #launchView #detailsForm .reward-options small{font-size:11px}
 #launchView .launch-notices>.wallet-ready-compact{margin-bottom:12px}
 #launchView #step3 .review-identity{gap:10px;margin-block:12px}
 #launchView #step3 .review-identity .avatar{width:48px;height:48px;border-radius:12px}
 #launchView #step3 .review-identity h4{font-size:22px}
 #launchView #step3 .review-data>div{padding:8px 0;gap:8px;font-size:12px}
 #launchView #step3 .launch-confirmation:not(.is-unprepared){padding:12px;margin-top:14px}
 #launchView #step3 .launch-confirmation.is-unprepared{margin-top:16px}
 #launchView #step3 .launch-approval-label{margin-bottom:8px}
 #launchView #step3 .launch-signing-progress{gap:8px;margin-bottom:12px}
 #launchView #step3 .launch-cost>strong{font-size:20px}
 #launchView #step3 .launch-primary-action{margin-top:12px}
 #launchView #step3 .launch-primary-action button,#launchView #detailsForm .panel-actions button{min-height:var(--primary-height);padding:8px 12px;font-size:13px;line-height:20px}
 #launchView #step3 .launch-disclosure{padding-block:0;margin-top:8px}
 #launchView #step3 .launch-confirmation p{font-size:12px;line-height:1.55}
}

@media(max-width:740px){
 :is(#launchView,#coinsView,#feesView,#docsView)>.page-heading{gap:5px 10px;margin:0 0 16px}
 :is(#launchView,#coinsView,#feesView,#docsView)>.page-heading .eyebrow{display:block;font-size:10px;line-height:1.3}
 :is(#launchView,#coinsView,#feesView,#docsView)>.page-heading h1{font-size:26px!important;line-height:1.15;margin:0}
 #launchView>.page-heading .text-button{max-width:104px;min-height:36px;white-space:normal;line-height:1.25;text-align:right}
}

/* Keep image and fee choices close to their captions on phone screens. */
@media(max-width:740px){
 #launchView #detailsForm .launch-artwork{padding:8px;gap:5px;margin-block:8px}
 #launchView #detailsForm .launch-artwork small{margin-top:3px}
 #launchView #detailsForm .launch-artwork .upload-button{min-height:32px;padding:5px 10px}
 #launchView #detailsForm .reward-options label{padding-block:6px;gap:6px}
 #launchView #detailsForm .reward-options small{margin-top:2px}
}

/* A valid upload replaces the chooser with a larger, uncropped preview. */
#launchView #detailsForm .launch-artwork{position:relative}
#launchView #detailsForm .launch-artwork .upload-icon{position:relative}
#launchView #detailsForm .launch-artwork[data-image-state="selected"]{flex-wrap:nowrap;gap:12px}
#launchView #detailsForm .launch-artwork[data-image-state="selected"] .upload-icon{width:96px;height:96px}
#launchView #detailsForm .launch-artwork[data-image-state="selected"]>div:nth-child(2){display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0;gap:6px}
#launchView #detailsForm .launch-artwork[data-image-state="selected"] .upload-button{display:none}
#launchView #detailsForm .launch-artwork .upload-icon img{object-fit:contain}
#launchView #detailsForm #removeImage{margin:0}
#launchView #detailsForm .artwork-heading{display:flex;align-items:center;gap:3px;max-width:100%;min-width:0}
#launchView #detailsForm .artwork-heading strong{min-width:0}
#launchView #detailsForm .launch-artwork[data-image-state="selected"] #artworkHelp{display:block;margin:0}
#launchView #detailsForm .artwork-selected-help{display:none}
#launchView #detailsForm .launch-artwork[data-image-state="selected"] .artwork-empty-help{display:none}
#launchView #detailsForm .launch-artwork[data-image-state="selected"] .artwork-selected-help{display:inline}
@media(min-width:741px){
 #launchView #detailsForm .launch-artwork{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;row-gap:6px}
 #launchView #detailsForm .launch-artwork>div.artwork-copy,#launchView #detailsForm .launch-artwork[data-image-state="selected"]>div.artwork-copy{display:contents}
 #launchView #detailsForm .launch-artwork .upload-icon{grid-column:1;grid-row:1 / span 2}
 #launchView #detailsForm .artwork-heading{grid-column:2;grid-row:1;align-self:end}
 #launchView #detailsForm #artworkHelp{grid-column:2;grid-row:2;align-self:start;margin:0}
 #launchView #detailsForm .launch-artwork :is(.upload-button,#removeImage){grid-column:3;grid-row:1 / span 2;align-self:center;margin:0;justify-content:center;min-height:var(--utility-height);padding:6px 12px;border-radius:9px;font-size:12px;white-space:nowrap}
}
.ui-coin-art-exit{position:absolute;inset:0;pointer-events:none}
.ui-coin-art-exit img{display:block;width:100%;height:100%;object-fit:cover}
.ui-artwork-exit{position:absolute!important;margin:0!important;pointer-events:none!important;user-select:none!important;z-index:1}
.ui-artwork-preview-exit{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
@media(max-width:740px){
 #launchView #detailsForm .launch-artwork:not([data-image-state="selected"]){column-gap:10px}
 #launchView #detailsForm .launch-artwork[data-image-state="selected"]{gap:10px}
 #launchView #detailsForm .launch-artwork[data-image-state="selected"] .upload-icon{width:80px;height:80px}
}
