:root{--locrian-menu-fill-duration:.96s;--locrian-menu-text-duration:.266667s;--locrian-menu-fill-ease:cubic-bezier(.2,.82,.2,1)}

/* Single shared header contract for landing, market, account and generator routes. */
/* Market top-category typography is the SSOT for upload actions on EVERY route.
   The build applies +2pt to explicit category font-size declarations, so the
   shared default must include it even before Market's live metrics are mounted. */
:root{--locrian-market-tab-size:calc(12px + var(--locrian-ui-font-size-offset,2pt));--locrian-market-tab-weight:650}
.site-header{position:relative;position:sticky;top:0;z-index:300;width:100%;background:#FFFFFF;border-bottom:1px solid #ececec;backdrop-filter:blur(14px);color:#111;font-family:var(--locrian-ui-font)}
.site-header .header-inner{width:min(100%,1440px);height:78px;padding:0 clamp(16px,2.7vw,42px);margin:auto;display:grid;grid-template-columns:minmax(110px,140px) minmax(205px,260px) minmax(160px,1fr) auto;align-items:center;gap:clamp(10px,1.4vw,22px)}
.site-header .logo-slot{width:100%;max-width:135px;display:flex;align-items:center}
.site-header .logo-slot img{width:100%;height:auto;object-fit:contain}
.site-header nav{display:flex!important;justify-content:center;align-items:center;gap:10px;min-width:0}
.site-header nav>a,.site-header nav>.nav-group>button{min-width:58px;min-height:50px;padding:12px 13px;font-size:14px}
.site-header .market-header-search{display:grid!important;min-width:0;width:100%;max-width:420px;height:40px}
.site-header .market-header-search input{font-size:12px}
.site-header .account-slot{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.site-header .account-actions,.site-header .account-summary{display:flex;align-items:center;white-space:nowrap;gap:9px}
.site-header .account-summary[hidden],.site-header .account-actions[hidden]{display:none!important}
.site-header .market-account-menu{display:block;position:relative;flex:0 0 auto}
.site-header .market-account-profile{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;overflow:hidden;border:1px solid #dedede;border-radius:50%;background:#f3f3f1;padding:0;cursor:pointer}
.site-header .market-account-profile img{display:block;width:100%;height:100%;object-fit:cover}
.site-header .market-account-profile[aria-expanded="true"]{border-color:#777}
.site-header .market-account-nickname{display:block;max-width:104px;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:650;letter-spacing:-.025em}
.site-header .market-account-dropdown{position:absolute;top:calc(100% + 12px);right:0;z-index:350;min-width:154px;padding:6px;border:1px solid #ddd;border-radius:10px;background:#fff;box-shadow:0 12px 28px #0000001a}
.site-header .market-account-dropdown[hidden]{display:none!important}
.site-header .market-account-dropdown a,.site-header .market-account-dropdown button{display:block;width:100%;padding:12px 13px;margin:0;border:0;border-radius:6px;background:transparent;color:#222;text-align:left;font-size:12px;font-weight:600;line-height:1.35;min-height:0;box-shadow:none}
.site-header .market-account-dropdown a:hover,.site-header .market-account-dropdown button:hover{background:#f5f5f3}
.site-header .account-credit{margin:0;padding-left:10px}
.site-header .account-charge{margin:0}
.site-header .market-cart-link{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;margin:0}
.site-header .market-cart-link svg{width:26px;height:26px}
.site-header .market-store-link{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;margin:0;border:1px solid #dedede;border-radius:50%;background:#fff}
.site-header .market-store-link[hidden]{display:none!important}
.site-header .market-store-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.site-header button{color:inherit}
.site-header .account-actions button{all:unset;cursor:pointer;padding:8px 0;font-size:12px}
.site-header .account-actions button:focus-visible{outline:1px solid #111;outline-offset:4px}
@media(max-width:1120px){
 .site-header .header-inner{grid-template-columns:minmax(104px,132px) minmax(154px,212px) minmax(140px,1fr) auto;gap:10px}
 .site-header nav{gap:6px}
 .site-header nav>a,.site-header nav>.nav-group>button{padding-inline:12px;font-size:13.5px}
 .site-header .account-slot{gap:6px}
 .site-header .account-summary{gap:5px}
 .site-header .market-account-nickname{max-width:72px}
 .site-header .account-credit{padding-left:6px}
}
@media(max-width:900px){
 .site-header nav{display:none!important}
 .site-header .header-inner{grid-template-columns:105px minmax(100px,1fr) auto;height:68px}
}
@media(max-width:680px){
 .site-header .header-inner{grid-template-columns:84px minmax(75px,1fr) auto;padding:0 12px;gap:7px}
 .site-header .market-account-nickname,.site-header .account-credit,.site-header .account-charge{display:none}
 .site-header .market-header-search{height:35px}
 .site-header .market-header-search input{padding-left:10px;font-size:10px}
 .site-header .market-header-search button{width:30px;height:30px;font-size:17px}
 .site-header .account-slot{gap:6px}
 .site-header .market-account-profile,.site-header .market-store-link{width:36px;height:36px;flex-basis:36px}
 .site-header .market-cart-link{width:36px;height:36px;flex-basis:36px}
 .site-header .market-cart-link svg{width:23px;height:23px}
 .site-header .account-actions{gap:6px}
 .site-header .account-actions button{font-size:10px}
}
@media print{.site-header{display:none!important}}

/* The old marketplace override used :has() to force hidden account elements visible. */
.site-header .header-inner #headerAccountSummary[hidden],
.site-header .header-inner .account-actions[hidden]{display:none!important}
.site-header .header-inner:has([data-market-header-search]) #headerAccountSummary:not([hidden]){display:flex!important}
.site-header .header-inner:has([data-market-header-search]) .account-actions:not([hidden]){display:flex!important}
@media(max-width:900px){
  .site-header .header-inner:has([data-market-header-search]){grid-template-columns:105px minmax(100px,1fr) auto}
}
@media(max-width:680px){
  .site-header .header-inner:has([data-market-header-search]){grid-template-columns:84px minmax(75px,1fr) auto}
}

/* Override historic market-only three-column layout; all headers have four children. */
@media(min-width:901px){
 .site-header .header-inner:has([data-market-header-search]){grid-template-columns:minmax(110px,140px) minmax(205px,260px) minmax(160px,1fr) auto!important}
}
.site-header .account-actions button::before,.site-header .account-actions button::after{content:none!important;display:none!important}
/* Protect the common avatar from worksheet-wide button dimensions. */
.site-header .market-account-menu > .market-account-profile{
  box-sizing:border-box!important;display:grid!important;place-items:center!important;
  flex:0 0 42px!important;width:42px!important;min-width:42px!important;max-width:42px!important;
  height:42px!important;min-height:42px!important;max-height:42px!important;
  aspect-ratio:1!important;padding:0!important;line-height:0!important;
  border-radius:50%!important;overflow:hidden!important;transform:none!important;
}
.site-header .market-account-profile img{width:100%!important;height:100%!important;object-fit:cover!important}
@media(max-width:680px){
  .site-header .market-account-menu > .market-account-profile{
    flex-basis:36px!important;width:36px!important;min-width:36px!important;max-width:36px!important;
    height:36px!important;min-height:36px!important;max-height:36px!important;
  }
}
/* Preserve a byte-identical shared header while hiding search only in tools. */
body.tool-page .site-header .market-header-search{display:none!important}
@media(min-width:901px){
  body.tool-page .site-header .header-inner{grid-template-columns:minmax(110px,140px) minmax(205px,260px) minmax(0,1fr)!important}
}
@media(max-width:900px){
  body.tool-page .site-header .header-inner{grid-template-columns:105px minmax(0,1fr)!important}
}
@media(max-width:680px){
  body.tool-page .site-header .header-inner{grid-template-columns:84px minmax(0,1fr)!important}
}
body.tool-page .site-header nav>.nav-group>button{
  color:inherit!important;background:transparent!important;border:0!important;box-shadow:none!important;
  font-weight:600!important;opacity:1!important;text-decoration:none!important;
}
/* Tools have no decorative motion. The native details toggle remains functional. */
body.tool-page .site-header,body.tool-page .site-header *,
body.tool-page .app,body.tool-page .app *:not(.locrian-brand-action):not(.locrian-wipe-plate){animation:none!important;transition:none!important}

/* Legacy settings CSS sets max-height:0 and previously relied on transitionend.
   Both generators now use native details state; an open panel must be visible. */
body.tool-page .app details.setting-group[open] > .setting-group-body{
  max-height:none!important;overflow:visible!important;opacity:1!important;
  transform:none!important;will-change:auto!important;
}
body.tool-page .app details.setting-group.is-sliding > .setting-group-body{overflow:hidden!important}
/* Only /market and its resource/search/store routes expose the shared search. */
.site-header .market-header-search{display:none!important}
.site-header .market-header-search[hidden]{display:none!important}
body.market-search-header .site-header .market-header-search:not([hidden]){display:grid!important}
@media(min-width:901px){
  body:not(.market-search-header) .site-header .header-inner{
    grid-template-columns:minmax(110px,140px) minmax(205px,260px) minmax(0,1fr)!important;
  }
}
@media(max-width:900px){
  body:not(.market-search-header) .site-header .header-inner{
    grid-template-columns:105px minmax(0,1fr)!important;
  }
}
@media(max-width:680px){
  body:not(.market-search-header) .site-header .header-inner{
    grid-template-columns:84px minmax(0,1fr)!important;
  }
}
/* Shared floating panel geometry: tool and account menus use the same surface. */
.site-header .nav-panel,
.site-header .market-account-dropdown{
  box-sizing:border-box;min-width:204px;padding:8px;
  border:1px solid rgba(95,87,76,.16);border-radius:15px;
  background:linear-gradient(165deg,rgba(255,255,255,.985),rgba(248,247,244,.975));
  box-shadow:0 18px 46px rgba(20,20,20,.095),0 4px 14px rgba(20,20,20,.045);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);overflow:hidden;
}
.site-header .nav-panel{top:calc(100% - 2px);min-width:224px}
.site-header .nav-panel>div{padding:0}
.site-header .market-account-dropdown{top:calc(100% + 11px)}
.site-header .nav-panel a,
.site-header .market-account-dropdown a,
.site-header .market-account-dropdown button{
  box-sizing:border-box;display:flex;align-items:center;
  min-height:43px;width:100%;padding:11px 14px;margin:0;
  border:0;border-radius:9px;background:transparent!important;
  font-size:12.5px;font-weight:600;line-height:1.4;letter-spacing:-.025em;
  text-align:left;color:#262522;opacity:1!important;transform:none!important;
  box-shadow:none;
}
.site-header .nav-panel a:hover,
.site-header .market-account-dropdown a:hover,
.site-header .market-account-dropdown button:hover,
.site-header .nav-panel a:focus-visible,
.site-header .market-account-dropdown a:focus-visible,
.site-header .market-account-dropdown button:focus-visible{color:#111;background:transparent!important}
.site-header .market-account-profile:has(img.is-default-avatar){background:#f8f8f6;border-color:#e2e0db}
.site-header .market-account-profile img.is-default-avatar{
  box-sizing:border-box;object-fit:contain!important;padding:5%;
}

/*
 * Universal Locrian menu-tab interaction (SSOT: DEVELOPMENT_PLAN.md §70).
 * Future menu controls use .locrian-menu-tab; existing surfaces are mapped here.
 * A fixed left-to-right fill always reaches the entire button, independent of pointer X.
 */
:is(.locrian-menu-tab, .site-header nav>a, .site-header nav>.nav-group>button, .site-header .nav-panel a, .site-header .market-account-dropdown a, .site-header .market-account-dropdown button, .market-category-button, .market-category-panel a, .mypage-menu a, .mypage-menu-action, .creator-nav a, .products-nav button){
  position:relative;isolation:isolate;overflow:hidden;
  transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important;
}
:is(.locrian-menu-tab, .site-header nav>a, .site-header nav>.nav-group>button, .site-header .nav-panel a, .site-header .market-account-dropdown a, .site-header .market-account-dropdown button, .market-category-button, .market-category-panel a, .mypage-menu a, .mypage-menu-action, .creator-nav a, .products-nav button)::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  border-radius:inherit;
  background:#111;
  transform:scaleX(0);transform-origin:left center;
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
:is(.locrian-menu-tab, .site-header nav>a, .site-header nav>.nav-group>button, .site-header .nav-panel a, .site-header .market-account-dropdown a, .site-header .market-account-dropdown button, .market-category-button, .market-category-panel a, .mypage-menu a, .mypage-menu-action, .creator-nav a, .products-nav button):is(:hover,:focus-visible,.is-active,[aria-expanded="true"])::before{
  transform:scaleX(1);
}
.site-header nav>a:hover,
.site-header nav>.nav-group>button:hover{opacity:1!important}
:is(.locrian-menu-tab, .site-header nav>a, .site-header nav>.nav-group>button, .site-header .nav-panel a, .site-header .market-account-dropdown a, .site-header .market-account-dropdown button, .market-category-button, .market-category-panel a, .mypage-menu a, .mypage-menu-action, .creator-nav a, .products-nav button):focus-visible{
  outline:2px solid #877563;outline-offset:-2px;
}
/* Generator canvas stays motion-free; header menus alone retain their requested hover fill. */
body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown a,.market-account-dropdown button)::before{
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
/* A light charcoal search button darkens on hover; the existing white PNG stays readable. */
.market-header-search button{
  background:#737a74;
  transition:background-color .25s ease!important;
}
.market-header-search button:not(:disabled):is(:hover,:focus-visible){background:#171c19}
@media(prefers-reduced-motion:reduce){
  :is(.locrian-menu-tab, .site-header nav>a, .site-header nav>.nav-group>button, .site-header .nav-panel a, .site-header .market-account-dropdown a, .site-header .market-account-dropdown button, .market-category-button, .market-category-panel a, .mypage-menu a, .mypage-menu-action, .creator-nav a, .products-nav button)::before{transition:none!important}
  .market-header-search button{transition:none!important}
}

/* SSOT §71: left-to-right black fill with synchronized white text. */
:is(.locrian-menu-tab,.site-header nav>a,.site-header nav>.nav-group>button,.site-header .nav-panel a,.site-header .market-account-dropdown .market-account-links a,.site-header .market-account-dropdown .market-account-links button,.market-category-button,.market-category-panel a,.mypage-menu a,.mypage-menu-action,.creator-nav a,.products-nav button):is(:hover,:focus-visible,.is-active,[aria-expanded="true"]){
  color:#fff!important;
}
:is(.locrian-menu-tab,.site-header nav>a,.site-header nav>.nav-group>button,.site-header .nav-panel a,.site-header .market-account-dropdown .market-account-links a,.site-header .market-account-dropdown .market-account-links button,.market-category-button,.market-category-panel a,.mypage-menu a,.mypage-menu-action,.creator-nav a,.products-nav button):not(.locrian-edge-tab):is(:hover,:focus-visible,.is-active,[aria-expanded="true"]) > :not(i){color:inherit!important}
body.tool-page .site-header nav>.nav-group>button:is(:hover,:focus-visible,[aria-expanded="true"]){color:#fff!important}

/* One universal account popover; the avatar is the rightmost header control. */
.site-header .account-slot{justify-self:end;width:max-content;max-width:100%;gap:10px}
.site-header .header-inner > .account-slot{justify-self:end!important;width:max-content!important}
.site-header .account-summary{gap:0;flex-wrap:nowrap!important}
.site-header .market-account-menu{position:relative;display:block}
.site-header .market-account-menu > .market-account-profile{
  position:relative;isolation:isolate;outline:0 solid transparent;outline-offset:3px;
  box-shadow:0 0 0 0 rgba(17,17,17,0);
  transition:border-color .22s ease,outline-color .22s ease,box-shadow .25s ease!important;
}
.site-header .market-account-profile::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:rgba(17,17,17,.13);opacity:0;transition:opacity .22s ease!important;
}
.site-header .market-account-profile:is(:hover,:focus-visible,[aria-expanded="true"]){
  border-color:#171717!important;
  box-shadow:0 0 0 3px rgba(17,17,17,.13),0 3px 11px rgba(17,17,17,.10)!important;
}
.site-header .market-account-profile:is(:hover,:focus-visible,[aria-expanded="true"])::after{opacity:1}
.site-header .market-account-profile:focus-visible{outline:2px solid #111;outline-offset:4px}
.site-header .market-account-dropdown{
  box-sizing:border-box;width:min(290px,calc(100vw - 24px));min-width:0;
  padding:12px;right:0;top:calc(100% + 15px);z-index:400;transform-origin:top right;
}
.site-header .market-account-dropdown:not([hidden]){
  animation:locrian-account-open .28s cubic-bezier(.2,.82,.2,1) both!important;
}
@keyframes locrian-account-open{
  from{opacity:0;transform:translateY(-6px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.site-header .market-account-identity{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:54px;padding:8px 8px 13px;border-bottom:1px solid #e9e7e3;
}
.site-header .market-account-dropdown .market-account-nickname{
  display:block!important;min-width:0;max-width:none!important;flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:14px;font-weight:750;letter-spacing:-.025em;color:#1c1c1c;
}
.site-header .market-account-dropdown .market-store-link{
  display:grid!important;place-items:center;position:relative;isolation:isolate;
  flex:0 0 36px;width:36px;height:36px;min-height:36px;
  padding:0!important;border:1px solid #dadada;border-radius:9px;
  background:transparent!important;box-sizing:border-box;color:#222;box-shadow:none;
}
.site-header .market-account-dropdown .market-store-link svg{
  display:block;width:20px;height:20px;stroke:currentColor;fill:none;
}
.site-header .market-account-dropdown .market-store-link:is(:hover,:focus-visible){
  color:#fff!important;border-color:#111;
}
.site-header .market-account-wallet{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:62px;padding:13px 8px;border-bottom:1px solid #e9e7e3;
}
.site-header .market-account-wallet .account-credit{
  display:block!important;margin:0!important;padding:0!important;border:0!important;
  font-size:12px;white-space:nowrap;letter-spacing:-.025em;color:#4e4e4e;
}
.site-header .market-account-wallet .account-credit strong{font-weight:750;font-size:14px;color:#111}
.site-header .market-account-wallet .account-charge{
  box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center;
  min-height:34px;padding:0 13px!important;margin:0!important;
  border:1px solid #111;border-radius:7px;background:#111;color:#fff!important;
  font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap;
  transition:background-color .2s ease,color .2s ease!important;
}
.site-header .market-account-wallet .account-charge:is(:hover,:focus-visible){
  background:#343434!important;color:#fff!important;
}
.site-header .market-account-links{display:grid;gap:3px;padding-top:8px}
.site-header .market-account-links a,.site-header .market-account-links button{width:100%;min-height:44px}
/* Tool pages keep their worksheet animation ban but animate this shared account UI. */
body.tool-page .site-header .market-account-menu > .market-account-profile{
  transition:border-color .22s ease,outline-color .22s ease,box-shadow .25s ease!important;
}
body.tool-page .site-header .market-account-profile::after{transition:opacity .22s ease!important}
body.tool-page .site-header .market-account-dropdown:not([hidden]){
  animation:locrian-account-open .28s cubic-bezier(.2,.82,.2,1) both!important;
}
@media(max-width:680px){
  .site-header .account-slot{gap:6px}
  .site-header .market-account-dropdown{right:0;width:min(282px,calc(100vw - 24px))}
}
@media(prefers-reduced-motion:reduce){
  .site-header .market-account-menu > .market-account-profile,
  .site-header .market-account-profile::after,
  .site-header .market-account-wallet .account-charge{transition:none!important}
  .site-header .market-account-dropdown:not([hidden]){animation:none!important}
  body.tool-page .site-header .market-account-menu > .market-account-profile,
  body.tool-page .site-header .market-account-profile::after{transition:none!important}
  body.tool-page .site-header .market-account-dropdown:not([hidden]){animation:none!important}
}

/* §72: generator-wide motion cancellation must not disable shared header menu tabs. */
body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button){
  transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important;
}
body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before{
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button):is(:hover,:focus-visible,.is-active,[aria-expanded="true"]){
  color:#fff!important;
}
/*
 * Generator styles/02-styles.css sets button::before {content:none;display:none;
 * opacity:0;transform:none!important} globally. Re-establish the shared tab
 * pseudo-element only on the two site-header BUTTON menu targets.
 */
body.tool-page .site-header .market-account-dropdown .market-account-links button{
  transform:none!important;filter:none!important;box-shadow:none!important;
}
body.tool-page .site-header .market-account-dropdown .market-account-links button::before{
  content:""!important;display:block!important;opacity:1!important;
  background:#111!important;transform:scaleX(0)!important;
  transform-origin:left center!important;
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
body.tool-page .site-header .market-account-dropdown .market-account-links button:is(:hover,:focus-visible,[aria-expanded="true"])::before{
  content:""!important;display:block!important;opacity:1!important;
  transform:scaleX(1)!important;
}
/* SSOT §248 root-cause cleanup: the original shared nav uses ONE rounded
   .site-header-nav-fill, so do not revive a second tool-tab ::before in the
   legacy rule above. The account-dropdown button retains its own independent
   wipe and keyboard interaction. */

/* Cart icon gains compact, neutral feedback without altering its hit area or badge. */
.site-header .market-cart-link{
  position:relative;isolation:isolate;border-radius:50%;color:#232323;
}
.site-header .market-cart-link::before{
  content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:#e9e9e7;z-index:-1;opacity:0;transform:scale(.52);
  transition:transform .24s cubic-bezier(.2,.82,.2,1),opacity .24s ease!important;
}
.site-header .market-cart-link svg{
  position:relative;transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
.site-header .market-cart-link:is(:hover,:focus-visible)::before{opacity:1;transform:scale(1)}
.site-header .market-cart-link:is(:hover,:focus-visible) svg{transform:translateY(-1px) scale(1.06)}
.site-header .market-cart-link:focus-visible{outline:2px solid #111;outline-offset:2px}
body.tool-page .site-header .market-cart-link svg{
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
/* Wallet recharge is a small static outline action, never a full-width animated tab. */
.site-header .market-account-wallet .account-charge{
  flex:0 0 auto;width:auto!important;min-height:28px!important;max-height:28px;
  padding:0 9px!important;border:1px solid #cecece!important;border-radius:6px;
  background:#fff!important;color:#111!important;font-size:11px!important;
  font-weight:650;line-height:1!important;box-shadow:none!important;
  transform:none!important;animation:none!important;transition:none!important;
}
.site-header .market-account-wallet .account-charge:is(:hover,:focus-visible){
  background:#fff!important;color:#111!important;border-color:#cecece!important;
  box-shadow:none!important;transform:none!important;
}
.site-header .market-account-wallet .account-charge::before,
.site-header .market-account-wallet .account-charge::after{
  content:none!important;display:none!important;animation:none!important;transition:none!important;
}
/* Logout is an actionable menu tab: identical black fill / white type to My Page. */
.site-header .market-account-dropdown .market-account-links [data-account-logout]{
  position:relative;isolation:isolate;overflow:hidden;
  transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important;
}
.site-header .market-account-dropdown .market-account-links [data-account-logout]:is(:hover,:focus-visible){
  color:#fff!important;
}
/* Market search is centered on the entire shared header, not on the leftover grid cell. */
@media(min-width:901px){
  body.market-search-header .site-header .header-inner{position:relative}
  body.market-search-header .site-header .header-inner > nav{
    justify-self:start;width:max-content;max-width:100%;
  }
  body.market-search-header .site-header .header-inner > .account-slot{grid-column:4}
  body.market-search-header .site-header .market-header-search:not([hidden]){
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:clamp(140px,calc(100vw - 760px),420px)!important;
    max-width:calc(100% - 24px);margin:0!important;z-index:1;
  }
}
@media(prefers-reduced-motion:reduce){
  body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button),
  body.tool-page .site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before,
  .site-header .market-cart-link::before,.site-header .market-cart-link svg,
  body.tool-page .site-header .market-cart-link svg,
  .site-header .market-account-dropdown .market-account-links [data-account-logout]{
    transition:none!important;
  }
}

/* SSOT §74: all shared header menu fill surfaces are square, including generator buttons.
   Preserve rounded avatar, cart feedback, store/charge actions and outer popup shell. */
.site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button),
.site-header :is(nav>a,nav>.nav-group>button,.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before{
  border-radius:0!important;
}

/* §81: faster tool/profile popup opening; submenu fill remains independently timed. */
.site-header .nav-panel,body.tool-page .site-header .nav-panel{
  transition:opacity .2s ease,transform .28s ease,visibility .28s ease!important;
}
.site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button),
body.tool-page .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button){
  transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important;
}
.site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before,
body.tool-page .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before{
  transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
.market-category-panel a{transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important}
.market-category-panel a::before{transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important}
@media(prefers-reduced-motion:reduce){
  .site-header .nav-panel,body.tool-page .site-header .nav-panel,
  .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button),
  body.tool-page .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button),
  .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before,
  body.tool-page .site-header :is(.nav-panel a,.market-account-dropdown .market-account-links a,.market-account-dropdown .market-account-links button)::before,
  .market-category-panel a,.market-category-panel a::before{transition:none!important}
}

/* §81: category and My Page use the same square black full-width fill. */
.market-category-button,.market-category-panel a,.mypage-menu a,.mypage-menu-action{
 border-radius:0!important;transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important;
}
.market-category-button::before,.market-category-panel a::before,.mypage-menu a::before,.mypage-menu-action::before{
 border-radius:0!important;transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important;
}
.market-category-panel a:hover,.market-category-panel a:focus-visible{background:transparent}
@media(prefers-reduced-motion:reduce){
 .market-category-button,.market-category-panel a,.mypage-menu a,.mypage-menu-action,
 .market-category-button::before,.market-category-panel a::before,.mypage-menu a::before,.mypage-menu-action::before{transition:none!important}
}
/* Specificity guard: the universal :is(...) menu rule has a stronger selector. */
.page-view.market-page .market-categories .market-category-button,
.page-view.market-page .market-categories .market-category-panel a,
.page-view .mypage-body .mypage-menu a,
.page-view .mypage-body .mypage-menu-action{transition:color var(--locrian-menu-text-duration) ease,border-color var(--locrian-menu-text-duration) ease!important}
.page-view.market-page .market-categories .market-category-button::before,
.page-view.market-page .market-categories .market-category-panel a::before,
.page-view .mypage-body .mypage-menu a::before,
.page-view .mypage-body .mypage-menu-action::before{transition:transform var(--locrian-menu-fill-duration) var(--locrian-menu-fill-ease)!important}
@media(prefers-reduced-motion:reduce){
 .page-view.market-page .market-categories .market-category-button,
 .page-view.market-page .market-categories .market-category-panel a,
 .page-view .mypage-body .mypage-menu a,.page-view .mypage-body .mypage-menu-action,
 .page-view.market-page .market-categories .market-category-button::before,
 .page-view.market-page .market-categories .market-category-panel a::before,
 .page-view .mypage-body .mypage-menu a::before,.page-view .mypage-body .mypage-menu-action::before{transition:none!important}
}

/* Shared Locrian confirmation surface: original dialog/logic; steel-blue skin. */
dialog.locrian-confirm-dialog{
 box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);
 padding:32px 30px 28px;border:1px solid #D9E2EC;border-radius:16px;
 background:linear-gradient(155deg,#FFFFFF 70%,#F8FAF8);
 box-shadow:0 22px 65px rgba(31,41,51,.18),0 5px 16px rgba(31,41,51,.06);
 color:#1F2933;font-family:var(--locrian-ui-font);overflow-y:auto;
}
dialog.locrian-confirm-dialog:not([open]){display:none}
dialog.locrian-confirm-dialog[open]{animation:locrian-confirm-enter .26s cubic-bezier(.22,1,.36,1) both}
dialog.locrian-confirm-dialog::backdrop{background:rgba(31,41,51,.36);backdrop-filter:blur(4px);animation:locrian-confirm-backdrop .22s ease both}
@keyframes locrian-confirm-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes locrian-confirm-backdrop{from{opacity:0}to{opacity:1}}
.locrian-confirm-brand{display:block;margin-bottom:16px;font-size:11px;font-weight:650;letter-spacing:.24em;color:#61758A}
.locrian-confirm-dialog h2{margin:0;font-size:21px;line-height:1.4;letter-spacing:-.045em;font-weight:650;color:#1F2933}
.locrian-confirm-message{margin:12px 0 0;font-size:13px;line-height:1.7;color:#6B7280}
.locrian-confirm-details{display:grid;gap:10px;margin:24px 0 0;padding:18px;border:1px solid #D9E2EC;border-radius:10px;background:#F8FAF8;font-size:13px}
.locrian-confirm-details>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.locrian-confirm-details dt{color:#6B7280}
.locrian-confirm-details dd{margin:0;color:#1F2933;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.locrian-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.locrian-confirm-actions button{
 min-height:46px;border:1px solid #D9E2EC;border-radius:9px;padding:10px 14px;
 font-family:inherit;font-size:13px;font-weight:650;cursor:pointer;
 transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.locrian-confirm-cancel{background:#FFFFFF;color:#1F2933}
.locrian-confirm-cancel:hover{background:#E3EAF5;border-color:#61758A}
.locrian-confirm-accept{background:#61758A;color:#fff;border-color:#61758A!important}
.locrian-confirm-accept:hover{background:#53677C;border-color:#53677C!important}
.locrian-confirm-accept.is-destructive{background:#752b2b;border-color:#752b2b!important;color:#fff}
.locrian-confirm-actions button:focus-visible{outline:2px solid #61758A;outline-offset:3px}
.locrian-credit-icon{display:inline-block;box-sizing:content-box;width:1.32em;height:.88em;vertical-align:-.12em;object-fit:contain;flex:none;margin:0 .16em}
.locrian-confirm-accept .locrian-credit-icon{filter:brightness(0) invert(1)}
@media(max-width:480px){dialog.locrian-confirm-dialog{padding:27px 20px 21px}.locrian-confirm-dialog h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){
 dialog.locrian-confirm-dialog[open],dialog.locrian-confirm-dialog::backdrop{animation:none!important}
 .locrian-confirm-actions button{transition:none!important}
}

/* Page-specific asset wordmark next to the existing Locrian logo. */
.site-header .site-branding{display:flex;align-items:center;gap:11px;min-width:0;white-space:nowrap}
.site-header .site-branding .logo-slot{flex:0 0 135px;width:135px;max-width:none}
.site-header .header-page-brand{box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:38px;padding-left:11px;border-left:1px solid #d5d5d5;text-decoration:none}
.site-header .header-page-brand img{display:block;width:auto;height:auto;max-width:87px;max-height:21px;object-fit:contain}
.site-header .header-page-brand:focus-visible{outline:2px solid #111;outline-offset:3px}
@media(min-width:901px){
  .site-header .header-inner:has([data-market-header-search]){grid-template-columns:minmax(225px,245px) minmax(185px,240px) minmax(120px,1fr) auto!important}
  body.tool-page .site-header .header-inner{grid-template-columns:minmax(225px,245px) minmax(175px,240px) minmax(0,1fr)!important}
}
@media(min-width:761px) and (max-width:900px){
  .site-header .header-inner{grid-template-columns:minmax(215px,235px) minmax(0,1fr) auto!important}
  body:not(.market-search-header) .site-header .header-inner{grid-template-columns:minmax(215px,235px) minmax(0,1fr)!important}
}
@media(max-width:760px){
  .site-header .header-inner,
  body.tool-page .site-header .header-inner,
  body:not(.market-search-header) .site-header .header-inner{grid-template-columns:max-content minmax(0,1fr) auto!important}
  .site-header .site-branding{gap:7px}
  .site-header .site-branding .logo-slot{flex-basis:90px;width:90px}
  .site-header .header-page-brand{padding-left:7px;min-height:32px}
  .site-header .header-page-brand img{max-width:63px;max-height:18px}
  .site-header .header-inner>.site-branding{grid-column:1}
  body:not(.market-search-header) .site-header .header-inner>.account-slot{grid-column:3}
}
@media(max-width:420px){
  .site-header .site-branding .logo-slot{flex-basis:80px;width:80px}
  .site-header .header-page-brand img{max-width:55px}
}


/* Keep the original centered Market search clear of nav at 1024–1440px. */
@media(min-width:901px) and (max-width:1440px){
  body.market-search-header .site-header .header-inner{
    grid-template-columns:190px 130px minmax(0,1fr) auto!important;
    column-gap:8px!important;
  }
  body.market-search-header .site-header .site-branding{gap:7px}
  body.market-search-header .site-header .site-branding .logo-slot{
    flex-basis:104px;width:104px;
  }
  body.market-search-header .site-header .header-page-brand{padding-left:7px}
  body.market-search-header .site-header .header-page-brand img{max-width:68px}
  body.market-search-header .site-header nav{gap:2px}
  body.market-search-header .site-header nav>a,
  body.market-search-header .site-header nav>.nav-group>button{
    min-width:0;padding:8px 5px;font-size:12px;
  }
}

/* SSOT §130: only the landing homepage hides the Market wordmark. */
.site-header .header-page-brand[hidden]{display:none!important}
/* Per-wordmark optical correction without affecting nav/search grid geometry. */
.site-header .header-page-brand[data-brand-section="tool"] img{max-width:68px;max-height:16px}
.site-header .header-page-brand[data-brand-section="market"] img{transform:translateY(-2px)}
@media(max-width:760px){
  .site-header .header-page-brand[data-brand-section="tool"] img{max-width:51px;max-height:14px}
}
@media(max-width:420px){
  .site-header .header-page-brand[data-brand-section="tool"] img{max-width:44px;max-height:13px}
}


/* Market nav: each of Canvas / Market / Tool has an equal, full-height hover and hit region.
   Compact widths preserve the absolutely centered search field at 1024–1440px. */
@media(min-width:901px){
  body.market-search-header .site-header .header-inner > nav{
    display:flex!important;justify-content:flex-start;gap:4px;width:max-content;
  }
  body.market-search-header .site-header .header-inner > nav > .nav-group{
    box-sizing:border-box;flex:0 0 62px;width:62px;min-width:0;
  }
  body.market-search-header .site-header .header-inner > nav > a,
  body.market-search-header .site-header .header-inner > nav > .nav-group > button{
    box-sizing:border-box;display:flex;align-items:center;justify-content:center;
    flex:0 0 62px;width:62px;min-width:62px;max-width:62px;
    height:50px;min-height:50px;padding:0;margin:0;line-height:1.2;font-size:14px;
  }
}
@media(min-width:901px) and (max-width:1359px){
  body.market-search-header .site-header .header-inner > nav{gap:2px}
  body.market-search-header .site-header .header-inner > nav > .nav-group{
    flex-basis:48px;width:48px;
  }
  body.market-search-header .site-header .header-inner > nav > a,
  body.market-search-header .site-header .header-inner > nav > .nav-group > button{
    flex-basis:48px;width:48px;min-width:48px;max-width:48px;
    padding:0;font-size:12px;
  }
}

/* SSOT §134: search icon starts black on white, inverts on hover/focus.
   Scope to market routes and outrank legacy site-header search styles. */
body.market-search-header .site-header .market-header-search button{
  width:44px;height:100%;margin:0;border:0;border-radius:0;
  background:#fff;color:#111;
  transition:background-color .22s ease,color .22s ease!important;
}
body.market-search-header .site-header .market-header-search button img{
  filter:invert(1);
  transition:filter .22s ease;
}
body.market-search-header .site-header .market-header-search button:not(:disabled):is(:hover,:focus-visible){
  background:#111;color:#fff;
}
body.market-search-header .site-header .market-header-search button:not(:disabled):is(:hover,:focus-visible) img{
  filter:invert(0);
}
@media(prefers-reduced-motion:reduce){
  body.market-search-header .site-header .market-header-search button,
  body.market-search-header .site-header .market-header-search button img{transition:none!important}
}

/* §135 top marketplace redesign: pill-shaped search control, without changing
   header layout or the existing black/white magnifier hover contract. */
body.market-search-header .site-header .market-header-search{
 box-sizing:border-box;height:44px;min-width:0;
 border:1px solid #d5d5d5;border-radius:999px;
 background:#fff;overflow:hidden
}
body.market-search-header .site-header .market-header-search input{
 min-width:0;height:100%;padding:0 17px;border:0;border-radius:999px 0 0 999px;
 background:transparent;color:#111
}
body.market-search-header .site-header .market-header-search button{
 box-sizing:border-box;flex:none;width:38px;height:38px;
 margin:0 3px 0 0;border:0;border-radius:50%;align-self:center;
 background:#fff;color:#111
}
body.market-search-header .site-header .market-header-search:focus-within{
 border-color:#111;box-shadow:0 0 0 1px #111
}
@media(max-width:760px){
 body.market-search-header .site-header .market-header-search{height:38px}
 body.market-search-header .site-header .market-header-search button{width:32px;height:32px;margin-right:2px}
 body.market-search-header .site-header .market-header-search input{padding-left:12px}
}

/* §139: keep each responsive header control inside its own grid cell. */
.site-header .header-inner,.site-header .header-inner>*{box-sizing:border-box}
.site-header .header-inner>*{min-width:0}
.site-header .market-header-search{min-width:0;max-width:100%}
.site-header .account-slot{min-width:0;max-width:100%}
@media(max-width:900px){
 .site-header .header-inner:has([data-market-header-search]){
  grid-template-columns:minmax(0,105px) minmax(0,1fr) max-content;
 }
 .site-header .market-header-search{justify-self:stretch}
}
@media(max-width:680px){
 .site-header .header-inner:has([data-market-header-search]){
  grid-template-columns:minmax(0,84px) minmax(0,1fr) max-content;
 }
 .site-header .account-slot{gap:4px!important}
 .site-header .account-actions,.site-header .account-summary{gap:4px}
}
@media(max-width:420px){
 /* Search takes a second row rather than squeezing/overlapping account buttons. */
 .site-header .header-inner:has([data-market-header-search]){
  height:108px;min-height:108px;max-width:100%;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:45px 37px;column-gap:6px;row-gap:4px;
  padding:6px 10px 10px;
 }
 .site-header .header-inner:has([data-market-header-search])>.logo-slot{grid-column:1;grid-row:1;max-width:84px}
 .site-header .header-inner:has([data-market-header-search])>.account-slot{grid-column:2;grid-row:1}
 .site-header .header-inner:has([data-market-header-search])>[data-market-header-search]{
  grid-column:1 / -1;grid-row:2;justify-self:stretch;width:100%;max-width:none;
 }
 .site-header .account-actions button{font-size:10px}
}

/* §140: one persistent black plate under white duplicate type across the
   shared Canvas, Market and Tool tabs. Text is clipped with the same plate. */
.site-header nav[aria-label="주 메뉴"]{position:relative;isolation:isolate}
.site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill{
 position:absolute;left:0;top:0;width:0;height:0;z-index:5;
 display:grid;place-items:center;box-sizing:border-box;overflow:hidden;
 pointer-events:none;visibility:hidden;opacity:0;background:#111;color:#fff;
 transition:left .38s cubic-bezier(.22,.82,.2,1),top .38s cubic-bezier(.22,.82,.2,1),
  width .38s cubic-bezier(.22,.82,.2,1),height .38s cubic-bezier(.22,.82,.2,1),
  opacity .12s ease,visibility .12s ease
}
.site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill.is-visible{visibility:visible;opacity:1}
.site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill.is-first{
 animation:site-nav-first-fill .65s cubic-bezier(.22,.82,.2,1) both
}
@keyframes site-nav-first-fill{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.site-header-nav-ink{
 box-sizing:border-box;display:flex;align-items:center;justify-content:center;
 width:100%;height:100%;white-space:nowrap;pointer-events:none;
 color:#fff;line-height:normal
}
/* Only the 3 primary header tabs use the shared moving plate. Never render
   their former independent ::before wipe; leave other menus unchanged. */
.site-header nav[aria-label="주 메뉴"]>a::before,
.site-header nav[aria-label="주 메뉴"]>.nav-group>button::before{
 content:none!important;display:none!important
}
.site-header nav[aria-label="주 메뉴"]>a,
.site-header nav[aria-label="주 메뉴"]>.nav-group>button,
.site-header nav[aria-label="주 메뉴"]>a:is(:hover,:focus-visible,.is-active),
.site-header nav[aria-label="주 메뉴"]>.nav-group>button:is(:hover,:focus-visible,.is-active,[aria-expanded="true"]){
 color:#111!important;background:transparent!important
}
.site-header nav[aria-label="주 메뉴"]>a:hover,
.site-header nav[aria-label="주 메뉴"]>.nav-group>button:hover{opacity:1!important}
.site-header nav[aria-label="주 메뉴"]>.nav-group{position:relative;z-index:auto}
/* Generators disable their editor animations globally. Restore motion only on
   the three shared header tabs' plate; the worksheet canvas stays static. */
body.tool-page .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill{
 transition:left .38s cubic-bezier(.22,.82,.2,1),top .38s cubic-bezier(.22,.82,.2,1),
  width .38s cubic-bezier(.22,.82,.2,1),height .38s cubic-bezier(.22,.82,.2,1),
  opacity .12s ease,visibility .12s ease!important
}
body.tool-page .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill.is-first{
 animation:site-nav-first-fill .65s cubic-bezier(.22,.82,.2,1) both!important
}
@media(prefers-reduced-motion:reduce){
 body.tool-page .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill,
 body.tool-page .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill.is-first{
  animation:none!important;transition:none!important;clip-path:none!important
 }
 .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill{
  animation:none!important;transition:none!important;clip-path:none!important
 }
}


/* §141 unified menu plate: profile links, My Page sidebar, tool submenu. */
.locrian-wipe-host{position:relative;isolation:isolate}
.locrian-wipe-host>.locrian-wipe-plate{
 position:absolute;top:0;left:0;width:0;height:0;z-index:6;
 box-sizing:border-box;display:grid;place-items:center;overflow:hidden;
 pointer-events:none;visibility:hidden;opacity:0;background:#111;
 border-radius:0!important;color:#fff;
 transition:left .38s cubic-bezier(.22,.82,.2,1),
  top .38s cubic-bezier(.22,.82,.2,1),
  width .38s cubic-bezier(.22,.82,.2,1),height .38s cubic-bezier(.22,.82,.2,1),
  opacity .12s ease,visibility .12s ease
}
.locrian-wipe-host>.locrian-wipe-plate.is-visible{visibility:visible;opacity:1}
.locrian-wipe-host>.locrian-wipe-plate.is-first{
 animation:locrian-vertical-first-wipe .65s cubic-bezier(.22,.82,.2,1) both
}
@keyframes locrian-vertical-first-wipe{
 from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}
}
.locrian-wipe-ink{
 display:flex;align-items:center;justify-content:flex-start;
 box-sizing:border-box;width:100%;height:100%;padding:0 14px;
 color:#fff!important;white-space:nowrap;pointer-events:none
}
.page-view .mypage-menu .locrian-wipe-ink{padding:0 4px}
.locrian-wipe-host>:is(a,button)::before{
 content:none!important;display:none!important
}
:is(.site-header .nav-panel .locrian-wipe-host,
 .site-header .market-account-dropdown .locrian-wipe-host,
 .page-view .mypage-body .mypage-menu.locrian-wipe-host)>:is(a,button),
:is(.site-header .nav-panel .locrian-wipe-host,
 .site-header .market-account-dropdown .locrian-wipe-host,
 .page-view .mypage-body .mypage-menu.locrian-wipe-host)>:is(a,button):is(:hover,:focus-visible,.is-active,[aria-expanded="true"]){
 color:#111!important;background:transparent!important
}
:is(.site-header .nav-panel .locrian-wipe-host,
 .site-header .market-account-dropdown .locrian-wipe-host,
 .page-view .mypage-body .mypage-menu.locrian-wipe-host)>:is(a,button):focus-visible{
 outline:2px solid #777;outline-offset:-2px
}
/* Worksheet pages suppress editor animation, but not the common tool/profile menu. */
body.tool-page .site-header .locrian-wipe-host>.locrian-wipe-plate{
 transition:left .38s cubic-bezier(.22,.82,.2,1),
  top .38s cubic-bezier(.22,.82,.2,1),
  width .38s cubic-bezier(.22,.82,.2,1),height .38s cubic-bezier(.22,.82,.2,1),
  opacity .12s ease,visibility .12s ease!important
}
body.tool-page .site-header .locrian-wipe-host>.locrian-wipe-plate.is-first{
 animation:locrian-vertical-first-wipe .65s cubic-bezier(.22,.82,.2,1) both!important
}
@media(prefers-reduced-motion:reduce){
 .locrian-wipe-host>.locrian-wipe-plate,
 body.tool-page .site-header .locrian-wipe-host>.locrian-wipe-plate,
 body.tool-page .site-header .locrian-wipe-host>.locrian-wipe-plate.is-first{
 animation:none!important;transition:none!important;clip-path:none!important
 }
}


/* SSOT §144 — one crossing edge for independent text tabs. A white glyph
   using difference blending becomes black over the base white surface and
   changes to white precisely where the #111 wipe has passed underneath it.
   No separate early color animation can outrun the background edge. */
.locrian-edge-tab{position:relative!important;isolation:isolate;overflow:hidden}
.locrian-edge-tab::before{
 content:""!important;position:absolute!important;inset:0!important;
 display:block!important;z-index:0!important;pointer-events:none!important;
 border-radius:inherit!important;background:#111!important;
 transform:scaleX(0);transform-origin:left center!important;
 transition:transform var(--locrian-menu-fill-duration,.96s) var(--locrian-menu-fill-ease,cubic-bezier(.22,.82,.2,1))!important
}
.locrian-edge-tab:is(:hover,:focus-visible,.is-active,.is-selected,[aria-expanded="true"],[aria-pressed="true"])::before{
 transform:scaleX(1)
}
/* Preserve the original layout, wrapping only real text nodes. SVG and icon
   artwork remain visible above the plate; no duplicate IDs or tabbable clones. */
/* Wrappers containing live text must not become isolated stacking contexts.
   Chromium confirms z-index:1 masks difference blending over white areas. */
.locrian-edge-tab > :not(.locrian-edge-ink){position:relative;z-index:auto}
.locrian-edge-tab .locrian-edge-ink{
 position:relative;z-index:1;
 color:#fff!important;-webkit-text-fill-color:#fff!important;
 mix-blend-mode:difference!important
}
.locrian-edge-tab .locrian-edge-icon{
 position:relative;z-index:1;mix-blend-mode:difference!important
}
.creator-type-card.locrian-edge-tab .creator-type-symbol img.locrian-edge-icon{
 filter:brightness(0) invert(1)!important
}
/* Old opaque hover fills are forbidden: they would turn the background black
   before the shared left-to-right edge reaches it. */
:is(.market-filter-option,.market-breadcrumb-options a,.maker-library-popup button).locrian-edge-tab:is(:hover,:focus-visible){
 background:transparent!important
}
@media(prefers-reduced-motion:reduce){
 .locrian-edge-tab::before{transition:none!important}
 .locrian-edge-tab .locrian-edge-ink{transition:none!important}
}


/* §144 correction: NO duplicate white text overlay. These are original live
   text nodes: difference blend makes #fff ink black on #fff, pure white on
   the moving #000 fill. The edge of the fill is the edge of the lettering. */
.locrian-edge-tab{background-color:#fff!important}
.locrian-edge-tab::before{background:#000!important}
.locrian-edge-tab > :not(.locrian-edge-ink){z-index:auto!important}
.locrian-edge-ink{color:#fff!important;-webkit-text-fill-color:#fff!important;mix-blend-mode:difference!important}
/* Shared grouped tabs have ONE moving plate beneath their ORIGINAL letters,
   not a second per-item pseudo fill. */
.locrian-edge-tab.locrian-edge-shared{background:transparent!important}
.locrian-edge-tab.locrian-edge-shared::before{content:none!important;display:none!important}
/* Shared and independent labels both retain auto z-index on wrappers. */
.site-header nav[aria-label="주 메뉴"],.locrian-wipe-host{background:#fff!important;isolation:isolate}
.site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill,
.locrian-wipe-host>.locrian-wipe-plate{
 z-index:0!important;background:#000!important;display:block!important
}
.site-header nav[aria-label="주 메뉴"] > a.locrian-edge-tab,
.site-header nav[aria-label="주 메뉴"] > .nav-group > button.locrian-edge-tab,
.locrian-wipe-host > .locrian-edge-tab{
 /* No z-index here: a child stacking context isolates the text blend from
    its sibling moving plate, even though mix-blend-mode computes to difference. */
 position:relative;z-index:auto!important;isolation:auto!important;
 background:transparent!important
}
.site-header-nav-ink,.locrian-wipe-ink{display:none!important}
@media(prefers-reduced-motion:reduce){
 .locrian-edge-tab::before{transition:none!important}
}

/* Card-only geometry (buttons, canvas sheets, input fields and round avatars excluded). */
:root{--locrian-card-radius:6px}
:is(.market-catalog-card,.market-resource-image,.market-catalog-image,.creator-type-card,
 .creator-upload-panel,.creator-upload-complete,.creator-thumb-section,.creator-thumb-listing,
 .creator-media-tile,.creator-media-empty,.creator-bundle-choices,.creator-stat-grid article,
 .creator-owned-product-row,.purchase-library-aside-card,.purchase-library-thumb,
 .profile-info-card,.price-card,.resource-stage,.cart-item,.locrian-confirm-details,
 .creator-identity-gate){border-radius:var(--locrian-card-radius)!important}
.maker-app :is(.maker-library-preview,.maker-library-thumb-paper,.maker-library-row,
 .maker-library-confirm,.maker-library-message,.maker-classroom-card,
 .maker-presentation-card,.maker-library-card){border-radius:var(--locrian-card-radius)!important}

/* Card-shaped surfaces are consistently softened across home, market, account,
   creator and canvas routes. This intentionally excludes standard inputs,
   controls, navigation tabs, floating tooltips and the editable canvas sheet. */
body :is([class$="-card"],[class*="-card "],.product-panel,
 .creator-upload-panel,.creator-thumb-section,.creator-thumb-listing,
 .creator-media-tile,.creator-media-empty,.creator-upload-complete,
 .creator-identity-gate,.purchase-library-aside-card,
 .maker-library-preview,.maker-library-confirm){border-radius:var(--locrian-card-radius)!important}


/* §144 sidebar parity: My Page and Creator Center have one compact white
   menu card. A grid item must size to real menu rows, not stretch to match
   the neighboring main content. Keep the same shared moving wipe plate. */
.creator-shell{align-items:start}
.creator-shell>.creator-nav.locrian-wipe-host,
.mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host{
 box-sizing:border-box;display:grid;align-content:start;align-self:start;
 width:100%;height:max-content;min-height:0;
 border:1px solid #e7e7e7;border-radius:6px;overflow:hidden;
 background:#fff!important
}
.creator-shell>.creator-nav.locrian-wipe-host>a,
.mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,.mypage-menu-action){
 box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;
 min-height:45px;padding:12px 14px;
 border:0; /* Row strokes caused bright seams across the olive moving plate. */
 background:transparent!important;text-align:left
}
/* The My Page section spacers are not menu actions. The card must have
   no phantom empty rows and must end immediately after its last action. */
.mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.mypage-menu-divider{display:none}
.creator-shell>.creator-nav.locrian-wipe-host>a:last-of-type,
.mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>a:last-of-type{border-bottom-color:#ededed}
.mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>a:last-of-type{border-bottom:0}
.creator-shell>.creator-nav.locrian-wipe-host>a:last-of-type{border-bottom:0}


/* Olive selected-state surfaces preserve the original wipe geometry and easing. */
@media screen {
 .site-header{background:#FFFFFF;border-bottom-color:var(--locrian-surface-line);color:var(--locrian-editorial-ink)}
 .site-header .market-header-search{border-color:var(--locrian-surface-line);background:rgba(255,255,255,.87)}
 .site-header .market-header-search button{background:#fff!important;color:var(--locrian-editorial-ink)}
 .site-header .market-header-search button:is(:hover,:focus-visible){background:var(--locrian-olive)!important}
 .site-header .market-account-profile{background:#edf0e5;border-color:var(--locrian-surface-line)}
 .site-header .market-cart-count{background:var(--locrian-olive);color:white}
 .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill,
 .locrian-wipe-host>.locrian-wipe-plate{background:var(--locrian-olive)!important}
 :is(.locrian-menu-tab,.site-header nav>a,.site-header nav>.nav-group>button,
 .site-header .nav-panel a,.site-header .market-account-dropdown a,
 .site-header .market-account-dropdown button,.market-category-button,
 .market-category-panel a,.mypage-menu a,.mypage-menu-action,.creator-nav a,
 .products-nav button):not(.locrian-edge-tab)::before{background:var(--locrian-olive)!important}
 body.tool-page .site-header .market-account-dropdown .market-account-links button::before{
  background:var(--locrian-olive)!important
 }
 .site-header :is(a,button,input):focus-visible{outline-color:var(--locrian-olive)}
}

/* Persistent authenticated creator action to the right of the profile image. */
.site-header .header-upload-link{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  min-height:36px;padding:0 13px;border:1px solid #61758A;border-radius:8px;
  background:#61758A;color:#fff;text-decoration:none;white-space:nowrap;
  font-size:12px;font-weight:650;line-height:1.35;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.site-header .header-upload-link:hover,.site-header .header-upload-link:focus-visible{
  background:#61758A;border-color:#61758A;color:#fff;
}
.site-header .header-upload-link[hidden]{display:none!important}
@media(max-width:760px){
 .site-header .header-upload-link{padding:0 8px;min-height:32px;font-size:10px}
 .site-header .account-slot{gap:4px}
}
@media(max-width:480px){.site-header .header-upload-link{font-size:9px;padding:0 6px}}
@media(prefers-reduced-motion:reduce){.site-header .header-upload-link{transition:none}}


/* §199 edge-synchronized olive text wipe, same ONE live text node.
   The gradient is painted into the glyphs, never into their background.
   JS measures the ACTUAL moving olive plate (including its first clip-path
   reveal), then sets the two cut points every animation frame.
   This avoids difference-blend magenta without advancing white ahead of fill. */
@media screen {
 .locrian-edge-tab.locrian-edge-shared .locrian-edge-ink{
  --locrian-ink-start:0%;
  --locrian-ink-end:0%;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;
  background-image:linear-gradient(90deg,
   var(--locrian-ink-base,var(--locrian-text,#1F2933)) 0 var(--locrian-ink-start),
   var(--locrian-ink-cross,#fff) var(--locrian-ink-start) var(--locrian-ink-end),
   var(--locrian-ink-base,var(--locrian-text,#1F2933)) var(--locrian-ink-end) 100%)!important;
  background-clip:text!important;
  -webkit-background-clip:text!important;
  text-shadow:none!important;
  transition:none!important;
 }
}


/* §201 sidebar repair. The ONE plate is behind the existing label;
   JS clips ink to its real rectangle, so the text never turns white early. */
@media screen{
 .creator-shell>.creator-nav.locrian-wipe-host,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host{
  position:relative!important;isolation:isolate!important;
 }
 .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate{
  z-index:0!important;background:var(--locrian-olive)!important;
  /* Make disappearance atomic with ink: never fade the plate behind white text. */
  opacity:1!important;
  transition:left .38s cubic-bezier(.22,.82,.2,1),
   top .38s cubic-bezier(.22,.82,.2,1),
   width .38s cubic-bezier(.22,.82,.2,1),
   height .38s cubic-bezier(.22,.82,.2,1)!important
 }
 .creator-shell>.creator-nav.locrian-wipe-host>a.locrian-edge-tab,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab{
  position:relative!important;z-index:1!important;isolation:auto!important;
  color:var(--locrian-olive-deep)!important;background:transparent!important
 }
 .creator-shell>.creator-nav.locrian-wipe-host .locrian-edge-ink,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host .locrian-edge-ink{
  text-shadow:none!important
 }
 .creator-shell>.creator-nav.locrian-wipe-host :is(a,button):focus-visible,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host :is(a,button):focus-visible{
  outline:2px solid var(--locrian-olive)!important;outline-offset:-2px
 }
}


/* Preserve dark original/white clipped icon layering against earlier
   independent-tab difference-blend rules, regardless of stylesheet order. */
@media screen{
 #page-view .creator-type-card.locrian-edge-tab .creator-type-symbol img.locrian-edge-icon:not(.locrian-edge-icon-overlay){
  filter:brightness(0)!important;mix-blend-mode:normal!important;
 }
 #page-view .creator-type-card.locrian-edge-tab .creator-type-symbol img.locrian-edge-icon-overlay{
  filter:brightness(0) invert(1)!important;mix-blend-mode:normal!important;
 }
}

/* Preserve system reduced-motion settings after sidebar-specific overrides. */
@media screen and (prefers-reduced-motion:reduce){
 .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate,
 .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate{
  transition:none!important;animation:none!important;clip-path:none!important
 }
}


/* Sidebar-only: no inherited white/color transition when changing the selected
   route. The SINGLE moving olive plate and its edge-clipped ink own the wipe. */
@media screen {
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>a.locrian-edge-tab,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab,
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>a.locrian-edge-tab:is(:hover,:focus-visible,.is-active),
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab:is(:hover,:focus-visible,.is-active){
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  transition:none!important; /* Older universal color tween flashed white on selection. */
 }
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>a.locrian-edge-tab .locrian-edge-ink,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab .locrian-edge-ink{
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;transition:none!important;
 }
}

/* A vertically sliding shared plate intersects a label in two dimensions.
   The original x-only gradient made a whole label turn white as soon as the
   plate touched its top/bottom edge, producing a white flash between rows.
   Darken-composition keeps white only where BOTH gradients have coverage. */
@media screen{
 .locrian-wipe-host .locrian-edge-tab.locrian-edge-shared .locrian-edge-ink{
  --locrian-ink-top:0%;--locrian-ink-bottom:0%;
  background-image:
   linear-gradient(90deg,var(--locrian-ink-base,var(--locrian-text,#1F2933)) 0 var(--locrian-ink-start),var(--locrian-ink-cross,#fff) var(--locrian-ink-start) var(--locrian-ink-end),var(--locrian-ink-base,var(--locrian-text,#1F2933)) var(--locrian-ink-end) 100%),
   linear-gradient(180deg,var(--locrian-ink-base,var(--locrian-text,#1F2933)) 0 var(--locrian-ink-top),var(--locrian-ink-cross,#fff) var(--locrian-ink-top) var(--locrian-ink-bottom),var(--locrian-ink-base,var(--locrian-text,#1F2933)) var(--locrian-ink-bottom) 100%)!important;
  background-blend-mode:darken!important;
  background-clip:text!important;-webkit-background-clip:text!important;
  transition:none!important;
 }
}

/* Market taxonomy vertical rows use the exact same shared sliding plate and
   two-axis original-ink clipping as the My Page / Creator Center sidebars.
   Never fade the plate beneath still-white glyphs or paint a second hover fill. */
@media screen {
 .market-mega-links.locrian-wipe-host {
  position:relative!important;isolation:isolate!important;
  background:#fff!important;gap:0!important;
 }
 .market-mega-links.locrian-wipe-host>.locrian-wipe-plate {
  z-index:0!important;background:var(--locrian-olive)!important;
  opacity:1!important;border-radius:5px!important;
  transition:left .38s cubic-bezier(.22,.82,.2,1),
   top .38s cubic-bezier(.22,.82,.2,1),
   width .38s cubic-bezier(.22,.82,.2,1),
   height .38s cubic-bezier(.22,.82,.2,1)!important;
 }
 .market-mega-links.locrian-wipe-host>.market-mega-link.locrian-edge-tab,
 .market-mega-links.locrian-wipe-host>.market-mega-link.locrian-edge-tab:is(:hover,:focus-visible,.is-selected) {
  position:relative!important;z-index:1!important;isolation:auto!important;
  background:transparent!important;color:#111!important;
  -webkit-text-fill-color:#111!important;transition:none!important;
 }
 .market-mega-links.locrian-wipe-host>.market-mega-link.locrian-edge-tab .locrian-edge-ink {
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;text-shadow:none!important;transition:none!important;
 }
}
@media screen and (prefers-reduced-motion:reduce) {
 .market-mega-links.locrian-wipe-host>.locrian-wipe-plate {
  animation:none!important;transition:none!important;clip-path:none!important;
 }
}

/* §224: persistent upload label matches the actual top category tab. */
@media screen{
 /* Higher specificity than the old upload font-size's post-build +2pt rule. */
 html body .site-header a.header-upload-link{
  font:var(--locrian-market-tab-weight,650) var(--locrian-market-tab-size,12px)/1.35 var(--locrian-ui-font,SUIT,system-ui,sans-serif)!important;
 }
}

/* §228-229 steel-blue selected, white idle and pale-blue hover navigation. */
@media screen{
 .site-header .header-upload-link{
  background:var(--locrian-tab-selected)!important;
  border-color:var(--locrian-tab-selected)!important;color:#fff!important;
 }
 .site-header .header-upload-link:is(:hover,:focus-visible){
  background:var(--locrian-tab-selected)!important;
  border-color:var(--locrian-tab-selected)!important;filter:brightness(.92);
 }
 .site-header nav[aria-label="주 메뉴"]>a.locrian-edge-tab,
 .site-header nav[aria-label="주 메뉴"]>.nav-group>button.locrian-edge-tab{
  background:var(--locrian-tab-idle)!important;
 }
 .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill{
  background:var(--locrian-tab-selected)!important;
 }
 .locrian-wipe-host>.locrian-wipe-plate{
  background:var(--locrian-tab-selected)!important;
 }
 .site-header :is(.nav-panel,.market-account-dropdown){
  border-color:var(--locrian-surface-line)!important;
 }
}

/* SSOT §229: moving wipe colors describe hover, not selection.
   Keep each original glyph and the existing plate geometry/animation. */
@media screen{
 .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill,
 .locrian-wipe-host>.locrian-wipe-plate{
  background:var(--locrian-tab-hover)!important;
 }
 .site-header nav[aria-label="주 메뉴"]>.site-header-nav-fill.is-selected-target,
 .locrian-wipe-host>.locrian-wipe-plate.is-selected-target{
  background:var(--locrian-tab-selected)!important;
 }
 .site-header nav[aria-label="주 메뉴"]>a.locrian-edge-tab,
 .site-header nav[aria-label="주 메뉴"]>.nav-group>button.locrian-edge-tab,
 .locrian-wipe-host>.locrian-edge-tab{
  --locrian-ink-base:var(--locrian-text,#1F2933);
  --locrian-ink-cross:var(--locrian-text,#1F2933);
 }
 .site-header nav[aria-label="주 메뉴"]>a.locrian-edge-tab.is-header-selected,
 .site-header nav[aria-label="주 메뉴"]>.nav-group>button.locrian-edge-tab.is-header-selected,
 .site-header nav[aria-label="주 메뉴"]>.nav-group>button.locrian-edge-tab[aria-expanded="true"]{
  background:var(--locrian-tab-selected)!important;
  color:#fff!important;
  --locrian-ink-base:#fff;--locrian-ink-cross:#fff;
 }
 .locrian-wipe-host>.locrian-edge-tab:is(.is-selected,.is-active,[aria-current="page"],[aria-pressed="true"]){
  --locrian-ink-base:#fff;--locrian-ink-cross:#fff;
 }
 .market-mega-links.locrian-wipe-host>.locrian-wipe-plate:not(.is-selected-target){
  background:var(--locrian-tab-hover)!important;
 }

 /* Older sidebar-specific steel-blue !important rules have stronger specificity.
    Outrank them without changing the 380ms single-plate movement contract. */
 html body .page-view .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate:not(.is-selected-target),
 html body .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate:not(.is-selected-target){
  background:var(--locrian-tab-hover)!important;
 }
 html body .page-view .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate.is-selected-target,
 html body .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate.is-selected-target{
  background:var(--locrian-tab-selected)!important;
 }
 /* Sidebar and dropdown selection remains visible after the hover plate leaves. */
 .locrian-wipe-host>.locrian-edge-tab:is(.is-selected,.is-active,[aria-current="page"],[aria-pressed="true"]){
  background:var(--locrian-tab-selected)!important;color:#fff!important;
 }

}


/* SSOT §229 navigation recovery: route selection and pointer hover must share
   ONE moving surface. Fixed selected CSS filled the link ABOVE that surface,
   leaving white seams and the illusion of a motionless highlight. */
@media screen {
 .site-header nav[aria-label="주 메뉴"] > a.locrian-edge-tab,
 .site-header nav[aria-label="주 메뉴"] > .nav-group > button.locrian-edge-tab{
  background:transparent!important;
 }
 .site-header nav[aria-label="주 메뉴"] > a.locrian-edge-tab.is-header-selected,
 .site-header nav[aria-label="주 메뉴"] > .nav-group > button.locrian-edge-tab.is-header-selected,
 .site-header nav[aria-label="주 메뉴"] > .nav-group > button.locrian-edge-tab[aria-expanded="true"]{
  background:transparent!important;color:var(--locrian-text,#1F2933)!important;
  --locrian-ink-base:var(--locrian-text,#1F2933);
  --locrian-ink-cross:var(--locrian-text,#1F2933);
 }
 .site-header nav[aria-label="주 메뉴"] > .nav-group{
  background:transparent!important;
 }
 .site-header nav[aria-label="주 메뉴"] > .site-header-nav-fill{
  border-radius:5px!important;
  transition:left .38s cubic-bezier(.22,.82,.2,1),
   top .38s cubic-bezier(.22,.82,.2,1),
   width .38s cubic-bezier(.22,.82,.2,1),
   height .38s cubic-bezier(.22,.82,.2,1),
   background-color .38s cubic-bezier(.22,.82,.2,1),
   opacity .12s ease,visibility .12s ease!important;
 }
 .site-header nav[aria-label="주 메뉴"]:has(>.site-header-nav-fill.is-selected-target)
  > a.locrian-edge-tab,
 .site-header nav[aria-label="주 메뉴"]:has(>.site-header-nav-fill.is-selected-target)
  > .nav-group > button.locrian-edge-tab{
  --locrian-ink-cross:#fff;
 }
}
@media screen and (prefers-reduced-motion:reduce){
 .site-header nav[aria-label="주 메뉴"] > .site-header-nav-fill{
  transition:none!important;animation:none!important;clip-path:none!important;
 }
}


/* SSOT §229: taxonomy-style one moving plate for account sidebars.
   The host owns the white canvas; individual rows never cover its plate. */
@media screen {
 .page-view .creator-shell>.creator-nav.locrian-wipe-host,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host{background:#fff!important;gap:0!important}
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>:is(a,button).locrian-edge-tab,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab,
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>:is(a,button).locrian-edge-tab:is(:hover,:focus-visible,.is-active),
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>:is(a,button).locrian-edge-tab:is(:hover,:focus-visible,.is-active){
  position:relative!important;z-index:1!important;background:transparent!important;background-image:none!important;
  box-shadow:none!important;color:var(--locrian-text,#1F2933)!important;
  -webkit-text-fill-color:var(--locrian-text,#1F2933)!important;
  --locrian-ink-base:var(--locrian-text,#1F2933);--locrian-ink-cross:var(--locrian-text,#1F2933);
  border:0!important;
 }
 .page-view :is(.creator-nav,.mypage-menu).locrian-wipe-host:has(>.locrian-wipe-plate.is-selected-target)
  >:is(a,button).locrian-edge-tab{--locrian-ink-cross:#fff}
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate{
  border-radius:5px!important;transition:left .38s cubic-bezier(.22,.82,.2,1),
   top .38s cubic-bezier(.22,.82,.2,1),width .38s cubic-bezier(.22,.82,.2,1),
   height .38s cubic-bezier(.22,.82,.2,1),background-color .38s cubic-bezier(.22,.82,.2,1)!important;
 }
}
@media screen and (prefers-reduced-motion:reduce){
 .page-view .creator-shell>.creator-nav.locrian-wipe-host>.locrian-wipe-plate,
 .page-view .mypage-body>.mypage-sidebar>.mypage-menu.locrian-wipe-host>.locrian-wipe-plate{
  transition:none!important;animation:none!important;clip-path:none!important;
 }
}


/* SSOT §229 — shared original-glyph text wipe for the My Page and Creator
   route plates. Never switch the entire selected label to white/black on hover.
   The live two-axis intersection makes the departing blue plate reveal dark
   ink exactly as it moves, including during first entry and keyboard focus. */
@media screen{
 html body .page-view :is(.mypage-menu,.creator-nav).locrian-wipe-host:has(>.locrian-wipe-plate)
  >:is(a,button).locrian-edge-tab{
  --locrian-ink-base:var(--locrian-text,#1F2933)!important;
  --locrian-ink-cross:var(--locrian-text,#1F2933)!important;
 }
 html body .page-view :is(.mypage-menu,.creator-nav).locrian-wipe-host:has(>.locrian-wipe-plate)
  >:is(a,button).locrian-edge-tab:is(.is-active,.is-selected,[aria-current="page"]){
  --locrian-ink-base:var(--locrian-text,#1F2933)!important;
  --locrian-ink-cross:#fff!important;
 }
 /* Keep all route label pixels in their ONE original ink element. */
 html body .page-view :is(.mypage-menu,.creator-nav).locrian-wipe-host
  >:is(a,button).locrian-edge-tab .locrian-edge-ink{
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;
 }
 /* Header upload styling uses market.css .locrian-brand-action. */
}

/* §240 – Canonical header wipe surfaces for Market, My Page and Creator.
   The same original-text clipping and 380ms physical fill are used across
   these controls. No cloned labels, blend-mode: difference, or overlay glyphs. */
@media screen {
 :root{--locrian-common-wipe-duration:.38s;--locrian-common-wipe-ease:cubic-bezier(.22,.82,.2,1)}
 /* A multi-select cannot use one sliding plate: independent fills are required.
    The shared header tab geometry, timing, and sampler remain the source. */
 html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared){
  --locrian-menu-fill-duration:var(--locrian-common-wipe-duration);
  --locrian-menu-fill-ease:var(--locrian-common-wipe-ease);
  position:relative!important;isolation:isolate!important;overflow:hidden!important;
  background:#fff!important;color:#1F2933!important;
  border:1px solid #D9E2EC!important;border-radius:5px!important;
  font-weight:450!important;
 }
 html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared)::before{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;
  z-index:0!important;background:#61758A!important;pointer-events:none!important;
  transform:scaleX(0)!important;transform-origin:left center!important;clip-path:none!important;
  transition:transform var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease)!important;
 }
 html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared):is(:hover,:focus-visible,.is-selected)::before{
  transform:scaleX(1)!important;
 }
 html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared)::after{
  content:none!important;display:none!important;
 }
 html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared)>.locrian-edge-ink{
  position:relative!important;z-index:1!important;
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;text-shadow:none!important;
  background-image:linear-gradient(90deg,
   #1F2933 0 var(--locrian-ink-start,0%),
   #fff var(--locrian-ink-start,0%) var(--locrian-ink-end,0%),
   #1F2933 var(--locrian-ink-end,0%) 100%)!important;
  background-clip:text!important;-webkit-background-clip:text!important;
  transition:none!important;
 }
 /* Floating filter menus still use the EXISTING taxonomy vertical
    initLocrianWipeMenu controller, not a second animation mechanism. */
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host{
  position:absolute!important;isolation:isolate;
 }
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab,
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab:is(:hover,:focus-visible,.is-selected,.is-active,.locrian-wipe-hovered){
  position:relative!important;z-index:1!important;isolation:auto!important;
  background:transparent!important;background-image:none!important;
  color:#1F2933!important;font-weight:450!important;box-shadow:none!important;
  --locrian-ink-base:#1F2933!important;--locrian-ink-cross:#1F2933!important;
 }
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host:has(>.locrian-wipe-plate.is-selected-target)
  >.locrian-shared-ui-tab.locrian-edge-tab{--locrian-ink-cross:#fff!important}
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab::before,
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab::after{content:none!important;display:none!important}
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab .locrian-edge-ink{
  position:relative!important;z-index:2!important;
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;text-shadow:none!important;
 }
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-wipe-plate{
  z-index:0!important;border-radius:5px!important;
  transition:left var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease),
   top var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease),
   width var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease),
   height var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease),
   background-color var(--locrian-common-wipe-duration) var(--locrian-common-wipe-ease)!important;
 }
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host>.locrian-wipe-plate.is-selected-target{background:#61758A!important}
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host>.locrian-wipe-plate:not(.is-selected-target){background:#E3EAF5!important}
}
@media screen and (prefers-reduced-motion:reduce){
 html body #page-view.market-page .creator-upload-form .locrian-header-wipe.locrian-edge-tab::before,
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host>.locrian-wipe-plate{
  transition:none!important;animation:none!important;clip-path:none!important;
 }
}

/* §241: shared selected glyph fallback, only AFTER the blue moving plate
   physically covers the entire original text. During motion the ordinary
   dual-axis clip gradient remains authoritative; no duplicated labels. */
@media screen {
 /* Match the full specificity of the shared gradient rule above, then
    add the settled state. Otherwise its !important transparent glyph wins. */
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab .locrian-edge-ink.locrian-ink-fully-covered{
  background-image:none!important;background-color:transparent!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  text-shadow:none!important;mix-blend-mode:normal!important;
 }
}

/* §242: Selected popup options have one persistent steel-blue surface so
   their original white caption stays readable even while the shared hover
   plate slides to another option. The selected row must paint ABOVE that
   sibling plate, never beneath it. No duplicate text or pseudo-elements. */
@media screen{
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >button.market-sort-item.is-selected.locrian-shared-ui-tab.locrian-edge-tab.locrian-edge-shared{
  position:relative!important;z-index:3!important;isolation:isolate!important;
  background-color:#61758A!important;background-image:none!important;
  border-color:#61758A!important;
 }
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.market-sort-item.is-selected.locrian-edge-tab>.locrian-edge-ink{
  position:relative!important;z-index:4!important;
  background:none!important;background-image:none!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  mix-blend-mode:normal!important;text-shadow:none!important;
 }
}

/* Category-rail SSOT: Marketplace's original moving horizontal plate, glyph
   clipping, hover return and selected blue surface. Upload stage + purchased
   library use THIS SAME class and JS controller; never introduce per-page tabs. */
@media screen{
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host{
  position:relative;isolation:isolate;background:#fff!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab,
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab:is(:hover,:focus-visible,.is-selected,.is-active,.is-highlighted,.locrian-wipe-hovered){
  position:relative!important;z-index:1!important;isolation:auto!important;
  background:transparent!important;background-image:none!important;box-shadow:none!important;
  color:var(--market-ink,#1F2933)!important;-webkit-text-fill-color:var(--market-ink,#1F2933)!important;
  --locrian-ink-base:var(--market-ink,#1F2933)!important;
  --locrian-ink-cross:var(--market-ink,#1F2933)!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host.is-selected-plate>.locrian-edge-tab{
  --locrian-ink-cross:#fff!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab::before,
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab::after{
  content:none!important;display:none!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab .locrian-edge-ink{
  position:relative!important;z-index:2!important;
  color:transparent!important;-webkit-text-fill-color:transparent!important;
  mix-blend-mode:normal!important;text-shadow:none!important;
  background-image:linear-gradient(90deg,
   var(--locrian-ink-base,#1F2933) 0 var(--locrian-ink-start,0%),
   var(--locrian-ink-cross,#fff) var(--locrian-ink-start,0%) var(--locrian-ink-end,0%),
   var(--locrian-ink-base,#1F2933) var(--locrian-ink-end,0%) 100%)!important;
  background-blend-mode:normal!important;background-clip:text!important;
  -webkit-background-clip:text!important;transition:none!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-wipe-plate{
  z-index:0!important;border-radius:5px!important;display:block!important;
  transition:left var(--locrian-common-wipe-duration,.38s) var(--locrian-common-wipe-ease,cubic-bezier(.22,.82,.2,1)),
   top var(--locrian-common-wipe-duration,.38s) var(--locrian-common-wipe-ease,cubic-bezier(.22,.82,.2,1)),
   width var(--locrian-common-wipe-duration,.38s) var(--locrian-common-wipe-ease,cubic-bezier(.22,.82,.2,1)),
   height var(--locrian-common-wipe-duration,.38s) var(--locrian-common-wipe-ease,cubic-bezier(.22,.82,.2,1)),
   background-color var(--locrian-common-wipe-duration,.38s) var(--locrian-common-wipe-ease,cubic-bezier(.22,.82,.2,1))!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-wipe-plate:not(.is-selected-target){
  background:var(--market-hover,#E3EAF5)!important;
 }
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-wipe-plate.is-selected-target{
  background:var(--market-selected,#61758A)!important;
 }
 /* Chromium's full coverage fallback is shared with category rails, not an
    upload/purchase-specific override; no extra glyph/plate is created. */
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-edge-tab
  .locrian-edge-ink.locrian-ink-fully-covered{
  background:none!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
 }
}
@media screen and (prefers-reduced-motion:reduce){
 html body :is(#page-view, .app) .locrian-category-rail.locrian-wipe-host>.locrian-wipe-plate{
  transition:none!important;animation:none!important;clip-path:none!important;
 }
}

/* §247 credit-mark SSOT: inline ticket follows the number's baseline and
   steel-blue ink; never recolor authored worksheet/PDF/Canvas content. */
@media screen {
  .locrian-credit-icon{
    width:1.2em!important;height:.8em!important;
    vertical-align:-.035em!important;margin:0 .18em!important;
    object-fit:contain;box-sizing:content-box;
  }
  html body .site-header .market-account-wallet .account-credit,
  html body .site-header .market-account-wallet .account-credit strong,
  html body .site-header .market-account-wallet .account-charge,
  html body .site-header .market-account-wallet .account-charge:is(:hover,:focus-visible),
  html body #page-view :is(
    .mypage-credit-summary>span,.mypage-credit-summary>strong,
    .balance>span,.balance>strong,.price-card>strong,
    .market-card-price,.resource-price,.resource-sticky-price
  ){
    color:var(--locrian-tab-selected,#61758A)!important;
    -webkit-text-fill-color:currentColor!important;
  }
}

/* §247: override the former, higher-specificity independent ink sampler for
   upload subjects/formats/grade details. Grade STAGE tabs stay shared rails. */
@media screen{
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared){
    background-color:#fff!important;background-image:none!important;
    color:#1F2933!important;-webkit-text-fill-color:currentColor!important;
    border-color:var(--locrian-surface-line,#D9E2EC)!important;
  }
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared)::before,
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared)::after{
    content:none!important;display:none!important;
    transform:none!important;animation:none!important;transition:none!important;
  }
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared)>.locrian-edge-ink{
    background:none!important;background-image:none!important;
    color:inherit!important;-webkit-text-fill-color:currentColor!important;
    background-clip:border-box!important;-webkit-background-clip:border-box!important;
    mix-blend-mode:normal!important;transition:inherit;
  }
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared):is(:hover,:focus-visible):not(.is-selected):not([aria-pressed="true"]){
    background-color:var(--locrian-tab-hover,#E3EAF5)!important;
    border-color:var(--locrian-tab-selected,#61758A)!important;
  }
  html body #page-view.market-page .creator-upload-form
    .creator-multi-chip.locrian-header-wipe.locrian-edge-tab:not(.grade-picker-tab):not(.locrian-edge-shared):is(.is-selected,[aria-pressed="true"]){
    background-color:var(--locrian-tab-selected,#61758A)!important;
    color:#fff!important;-webkit-text-fill-color:#fff!important;
    border-color:var(--locrian-tab-selected,#61758A)!important;
  }
}


/* SSOT §248: generator Tool-tab hover is painted by the ONE rounded shared
   header plate. A legacy tool-only ::before fill had square corners and could
   cover that plate. Keep hover/open hitboxes and the working menu handlers. */
@media screen {
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .nav-group {
    border-radius:5px!important;background:transparent!important;
  }
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .nav-group > button,
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .nav-group > button:is(:hover,:focus-visible,[aria-expanded="true"]) {
    border-radius:5px!important;background:transparent!important;
    background-image:none!important;box-shadow:none!important;
  }
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .nav-group > button::before,
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .nav-group > button::after {
    content:none!important;display:none!important;animation:none!important;
  }
  html body.tool-page .site-header nav[aria-label="주 메뉴"] > .site-header-nav-fill {
    border-radius:5px!important;
  }
}

/* §249: Center the C ticket inside recharge amounts without moving header or product prices. */
@media screen{
 html body #page-view :is(.balance,.price-card) .locrian-credit-icon{
  vertical-align:-.085em!important;
 }
 /* Tool route: the pale hover plate needs dark ink, never white-on-pale.
    Only the actually selected Steel Blue plate uses white clipped ink. */
 html body.tool-page .site-header nav[aria-label="주 메뉴"]>.nav-group>button.locrian-edge-tab{
  --locrian-ink-base:#1F2933!important;--locrian-ink-cross:#1F2933!important;
 }
 html body.tool-page .site-header nav[aria-label="주 메뉴"]:has(>.site-header-nav-fill.is-selected-target)
  >.nav-group>button.locrian-edge-tab.is-header-selected{
  --locrian-ink-cross:#fff!important;
 }
}

/* Locrian generated screen UI font-size uplift; do not edit. */
@media screen {
.site-header nav>a,.site-header nav>.nav-group>button{font-size:calc(14px + 2pt)}
.site-header .market-header-search input{font-size:calc(12px + 2pt)}
.site-header .market-account-nickname{font-size:calc(12px + 2pt)}
.site-header .market-account-nickname{font-weight:600}
.site-header .market-account-dropdown a,.site-header .market-account-dropdown button{font-size:calc(12px + 2pt)}
.site-header .market-account-dropdown a,.site-header .market-account-dropdown button{font-weight:550}
.site-header .account-actions button{font-size:calc(12px + 2pt)}
@media(max-width:1120px){.site-header nav>a,.site-header nav>.nav-group>button{font-size:calc(13.5px + 2pt)}}
@media(max-width:680px){.site-header .market-header-search input{font-size:calc(10px + 2pt)}}
@media(max-width:680px){.site-header .market-header-search button{font-size:calc(17px + 2pt)}}
@media(max-width:680px){.site-header .account-actions button{font-size:calc(10px + 2pt)}}
body.tool-page .site-header nav>.nav-group>button{font-weight:550!important}
.site-header .nav-panel a,
.site-header .market-account-dropdown a,
.site-header .market-account-dropdown button{font-size:calc(12.5px + 2pt)}
.site-header .nav-panel a,
.site-header .market-account-dropdown a,
.site-header .market-account-dropdown button{font-weight:550}
.site-header .market-account-dropdown .market-account-nickname{font-size:calc(14px + 2pt)}
.site-header .market-account-dropdown .market-account-nickname{font-weight:700}
.site-header .market-account-wallet .account-credit{font-size:calc(12px + 2pt)}
.site-header .market-account-wallet .account-credit strong{font-weight:700}
.site-header .market-account-wallet .account-credit strong{font-size:calc(14px + 2pt)}
.site-header .market-account-wallet .account-charge{font-size:calc(12px + 2pt)}
.site-header .market-account-wallet .account-charge{font-weight:650}
.site-header .market-account-wallet .account-charge{font-size:calc(11px + 2pt)!important}
.site-header .market-account-wallet .account-charge{font-weight:600}
.locrian-confirm-brand{font-size:calc(11px + 2pt)}
.locrian-confirm-brand{font-weight:600}
.locrian-confirm-dialog h2{font-size:calc(21px + 2pt)}
.locrian-confirm-dialog h2{font-weight:600}
.locrian-confirm-message{font-size:calc(13px + 2pt)}
.locrian-confirm-details{font-size:calc(13px + 2pt)}
.locrian-confirm-details dd{font-weight:650}
.locrian-confirm-actions button{font-size:calc(13px + 2pt)}
.locrian-confirm-actions button{font-weight:600}
@media(max-width:480px){.locrian-confirm-dialog h2{font-size:calc(19px + 2pt)}}
@media(min-width:901px) and (max-width:1440px){body.market-search-header .site-header nav>a,
  body.market-search-header .site-header nav>.nav-group>button{font-size:calc(12px + 2pt)}}
@media(min-width:901px){body.market-search-header .site-header .header-inner > nav > a,
  body.market-search-header .site-header .header-inner > nav > .nav-group > button{font-size:calc(14px + 2pt)}}
@media(min-width:901px) and (max-width:1359px){body.market-search-header .site-header .header-inner > nav > a,
  body.market-search-header .site-header .header-inner > nav > .nav-group > button{font-size:calc(12px + 2pt)}}
@media(max-width:420px){.site-header .account-actions button{font-size:calc(10px + 2pt)}}
.site-header .header-upload-link{font-size:calc(12px + 2pt)}
.site-header .header-upload-link{font-weight:600}
@media(max-width:760px){.site-header .header-upload-link{font-size:calc(10px + 2pt)}}
@media(max-width:480px){.site-header .header-upload-link{font-size:calc(9px + 2pt)}}
@media screen{html body #page-view.market-page .creator-upload-form
  .locrian-header-wipe.locrian-edge-tab:not(.locrian-edge-shared){font-weight:400!important}}
@media screen{html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab,
 html body #page-view .locrian-popup-filter-options.locrian-wipe-host
  >.locrian-shared-ui-tab.locrian-edge-tab:is(:hover,:focus-visible,.is-selected,.is-active,.locrian-wipe-hovered){font-weight:400!important}}
}
