/* One compact header for public pages and full-screen tools. */
:root{--px-header-height:64px;--header-h:var(--px-header-height);--px-press-time:140ms;--px-press-ease:cubic-bezier(.2,.7,.2,1)}
.px-header-ready body .site-header.px-site-header{display:block;position:sticky;top:0;z-index:35;min-height:var(--px-header-height);border:0;background:rgba(247,248,246,.97);box-shadow:0 1px 0 #1b202510}
.px-site-header,.px-site-header *{box-sizing:border-box}
.px-site-header .px-header-inner,.px-site-header.px-header-inner{display:flex;align-items:center;gap:8px;width:100%;min-height:var(--px-header-height);padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));margin:0;min-width:0}
.px-site-header .px-header-brand{display:flex;align-items:center;gap:9px;flex:none;min-width:44px;min-height:44px;color:#1b2025;text-decoration:none;font:750 1rem/1 system-ui,-apple-system,sans-serif;letter-spacing:0}
.px-header-brand img{display:block;width:40px;height:40px;border-radius:9px;background:#05090c;image-rendering:pixelated}
.px-site-header .brand-mark{flex:none;width:40px;height:40px;background-size:40px 40px;border:0;border-radius:9px;transform:none}
.px-site-header .px-header-pass{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 18px;grid-template-rows:12px 17px;align-content:center;align-items:center;column-gap:4px;row-gap:2px;flex:none;width:100px;min-width:100px;min-height:44px;height:44px;margin-left:auto;padding:5px 7px;overflow:hidden;isolation:isolate;border:1px solid #ad842c40;border-radius:12px;background:linear-gradient(155deg,#fffaf0,#f3ead7);box-shadow:inset 0 1px 0 #fff,0 2px 0 #87642512;color:#6b521d;font:750 12px/1 system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;touch-action:manipulation}
.px-header-pass[data-active=true]{background:linear-gradient(155deg,#fff1c7,#f6daa0);color:#543f14;border-color:#b0843055}
.px-header-pass[data-free-ready=true]{border-color:#4d8e6c88;box-shadow:inset 0 1px 0 #fff,0 0 0 1px #4d8e6c20,0 2px 0 #87642512}
.px-header-pass[data-free-ready=true][data-active=true]{border-color:#598766aa;box-shadow:inset 0 1px 0 #fff,0 0 0 1px #59876620,0 2px 0 #87642512}
.px-header-pass:disabled{cursor:default;opacity:.8}
.px-header-pass svg{display:block;width:10px;height:10px;fill:currentColor;stroke:none;flex:none;shape-rendering:crispEdges}
.px-pass-top{display:flex;align-items:center;gap:3px;min-width:0}
.px-pass-top::before{content:'残り';display:none;flex:none;color:inherit;font:700 8px/1 system-ui,-apple-system,sans-serif}
.px-header-pass[data-active=true]:not([data-pro=true]) .px-pass-top::before{display:inline;content:'残り'}
.px-header-pass[data-active=true]:not([data-pro=true]) .px-pass-pixel-star,.px-header-pass[data-free-ready=true]:not([data-active=true]) .px-pass-pixel-star{display:none}
.px-pass-top [data-header-pass-label]{min-width:0;overflow:hidden;text-overflow:ellipsis}
.px-header-pass[data-long=true] .px-pass-pixel-star{display:none}
.px-pass-gauge{display:grid;grid-template-rows:repeat(3,5px);gap:1px;align-self:stretch;min-width:0}
.px-pass-hint{display:none;grid-column:1;grid-row:2;font:700 9px/17px system-ui,-apple-system,sans-serif;color:inherit}
.px-header-pass:not([data-active=true]) .px-pass-gauge{display:none}
.px-header-pass:not([data-active=true]) .px-pass-hint{display:block}
.px-pass-hint::before{content:'広告で追加'}
.px-header-pass[data-free-ready=true] .px-pass-hint::before{content:'タップで受取'}
.px-pass-gauge-row{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;min-width:0;height:5px;padding-left:14px;overflow:hidden;border-radius:3px;background:#92753935}
.px-pass-gauge-row::before{content:attr(data-hours) 'h';position:absolute;left:0;top:0;display:block;width:12px;overflow:visible;color:currentColor;font:750 7px/5px system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;text-align:left}
.px-pass-cell{display:block;min-width:0;height:5px;border-radius:0;background:transparent;box-shadow:none}
.px-pass-cell[data-filled=true]{background:#b78022;box-shadow:inset 0 1px 0 #fff7}
.px-pass-gauge-row:nth-child(2) .px-pass-cell[data-filled=true]{background:#cb993a}
.px-pass-gauge-row:first-child .px-pass-cell[data-filled=true]{background:#dfb353}
.px-pass-add{grid-column:2;grid-row:1 / -1;display:grid;place-items:center;width:18px;height:24px;border:1px solid #b38c3440;border-radius:6px;background:#ffffff80;box-shadow:inset 0 1px 0 #fff8;color:inherit;font:650 17px/1 system-ui,sans-serif}
.px-header-pass[data-free-ready=true][data-active=true] .px-pass-add{font-size:0}
.px-header-pass[data-free-ready=true][data-active=true] .px-pass-add::before{content:'無料';font:750 7px/1 system-ui,-apple-system,sans-serif;white-space:nowrap}
.px-header-pass:not([data-active=true]):not([data-pro=true]):not([data-free-ready=true]) .px-pass-add{font-size:0}
.px-header-pass:not([data-active=true]):not([data-pro=true]):not([data-free-ready=true]) .px-pass-add::before{content:'広告';font:750 7px/1 system-ui,-apple-system,sans-serif;white-space:nowrap}
.px-header-pass[data-free-arrive=true] .px-pass-add{animation:px-pass-free-arrive 420ms steps(3,end) 1 both}
@keyframes px-pass-free-arrive{0%{opacity:.45;transform:translateY(2px) scale(.84);text-shadow:0 0 0 #6da68100}35%{opacity:1;transform:translateY(-1px) scale(1.08);text-shadow:0 0 5px #6da68190}100%{opacity:1;transform:none;text-shadow:0 0 0 #6da68100}}
@media(prefers-reduced-motion:reduce){.px-header-ready .px-pass-add::before{animation:none!important}}
html[data-pixieed-motion=reduced] .px-pass-add::before{animation:none!important}
.px-header-pass[data-pending=true]{cursor:progress;opacity:.72}
/* A single short sweep after a reward. No animation runs while idle. */
.px-header-pass::after{content:'';position:absolute;inset:-4px auto -4px 0;width:35%;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:translateX(-150%) skewX(-20deg)}
.px-header-pass[data-recharged=true]::after{animation:px-pass-recharge 450ms var(--px-press-ease) 1}
@keyframes px-pass-recharge{0%{opacity:0;transform:translateX(-150%) skewX(-20deg)}20%{opacity:.9}100%{opacity:0;transform:translateX(400%) skewX(-20deg)}}
.px-site-header .menu-toggle{width:44px;height:44px;min-width:44px}
.px-site-header :is(a,button,summary):focus-visible{outline:3px solid #357bb3;outline-offset:2px}
.px-site-header .px-header-utilities{flex:none}
.px-header-ready [data-pass-slot]{display:none!important}
/* Full-screen editors reserve exactly the height of the shared bar. */
.px-header-ready body:is(.app-page--tool-draw,.app-page--tool-jigsaw,.app-page--tool-creation-game,.app-page--tool-creation-spot,.app-page--tool-creation-hidden) #main{height:calc(100dvh - var(--px-header-height))}
.px-header-ready body:is(.hidden-object-editing,.spot-editing) #main{top:var(--px-header-height);height:calc(100dvh - var(--px-header-height))}
.px-header-ready .pixfind-page--playing{top:var(--px-header-height);height:auto}
.audio-heading.px-site-header{gap:6px;flex:none;min-height:var(--px-header-height);padding:0;margin:0}
.audio-heading.px-site-header h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.audio-heading.px-site-header .px-header-pass{width:96px;min-width:96px}
.audio-heading.px-site-header .audio-header-actions{gap:3px}
.lc-top.px-site-header{display:flex;top:var(--lc-safe-t);left:0;right:0;gap:8px;min-height:64px;padding:8px 12px;pointer-events:none;background:linear-gradient(#0d111499,transparent)}
.lc-top.px-site-header>*{pointer-events:auto}
.lc-top.px-site-header .px-header-brand{color:white}
.lc-top.px-site-header .lc-zoom-stops{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);max-width:calc(100vw - 24px);overflow-x:auto}
.lc-top.px-site-header .px-header-pass,.px-standalone-globe .px-header-pass{background:linear-gradient(155deg,#2c2c25f5,#17222af5);color:#ffe4a6;border-color:#e0b65c60;box-shadow:inset 0 1px 0 #fff1,0 2px 0 #0002}
.lc-top.px-site-header .px-pass-add,.px-standalone-globe .px-pass-add{background:#ffffff0d;border-color:#e0b65c45;box-shadow:inset 0 1px 0 #fff1}
.lc-top.px-site-header .px-pass-gauge-row,.px-standalone-globe .px-pass-gauge-row{background:#e0b65c35}
.lc-top.px-site-header .px-pass-cell[data-filled=true],.px-standalone-globe .px-pass-cell[data-filled=true]{background:#edc467}
.lc-top.px-site-header .lc-top-left{gap:0}
.lc[data-recording=true] .px-site-header *{pointer-events:none}
.px-header-ready body.px-standalone-globe .site-header.px-site-header{background:#08121c;color:#e9f6f7}
.px-standalone-globe .px-header-brand{color:#e9f6f7}
.px-standalone-globe .prototype-header{display:none}
.px-standalone-globe .globe-prototype{padding:0;width:100%;min-height:0;grid-template-rows:minmax(0,1fr);height:calc(100dvh - var(--px-header-height))}
.px-standalone-globe .globe-stage{min-height:0;height:calc(100dvh - var(--px-header-height));border:0;border-radius:0}
@media(max-width:600px){.px-site-header .px-header-brand>span:not(.brand-mark){display:none}.px-site-header .px-header-inner,.px-site-header.px-header-inner{gap:6px}.audio-heading.px-site-header{padding:0;gap:5px}}

/* Public controls share a small, physical response; canvases keep their own gestures. */
.px-header-ready :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button){transition:transform var(--px-press-time) var(--px-press-ease),opacity var(--px-press-time) ease}
.px-header-ready :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button):not(:disabled):active{transform:translateY(1px) scale(.96)}
.px-header-ready .tool-card{background-image:linear-gradient(145deg,#ffffff90,transparent 65%);transition:transform 180ms var(--px-press-ease);box-shadow:0 2px 0 #17233308}
.px-header-ready .tool-card__icon{position:relative;isolation:isolate;box-shadow:inset 0 1px 0 #fff8}
.px-header-ready .tool-card__icon::after{content:'';position:absolute;right:5px;bottom:5px;width:3px;height:3px;background:currentColor;box-shadow:-4px 0 currentColor,0 -4px currentColor;opacity:.18;pointer-events:none}
.px-header-ready .tool-card:active{transform:translateY(1px) scale(.985)}
@media(hover:hover) and (pointer:fine){.px-header-ready .px-header-pass:not(:disabled):hover{transform:translateY(-1px)}.px-header-ready .tool-card:hover{transform:translateY(-3px);box-shadow:0 2px 0 #17233308}}
@media(prefers-reduced-motion:reduce){.px-header-ready :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button,.tool-card){transition:none;transform:none}.px-header-ready .px-header-pass::after{animation:none}.px-header-ready :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button,.tool-card):is(:active,:hover){transform:none}}
/* Override the older global reduced-motion duration on every new gauge cell. */
@media(prefers-reduced-motion:reduce){.px-header-ready .px-header-pass,.px-header-ready .px-header-pass *,.px-header-ready .px-header-pass::before,.px-header-ready .px-header-pass::after{animation:none!important;transition:none!important}}
html[data-pixieed-motion=reduced] :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button,.tool-card){transition:none;transform:none}
html[data-pixieed-motion=reduced] .px-header-pass::after{animation:none}
html[data-pixieed-motion=reduced] :is(.px-header-pass,.px-header-utilities button,.px-header-utilities summary,.button,.app-tabs>a,.app-tabs>button,.lc-nav>a,.lc-nav>button,.tool-card):is(:active,:hover){transform:none}
html[data-pixieed-motion=reduced] .px-header-pass,html[data-pixieed-motion=reduced] .px-header-pass *,html[data-pixieed-motion=reduced] .px-header-pass::before,html[data-pixieed-motion=reduced] .px-header-pass::after{animation:none!important;transition:none!important}

/* The opt-in sheet uses the same pixel details and stays readable on short screens. */
.px-header-ready .px-pass{background:linear-gradient(145deg,#28343d,#151d25);border-color:#e5c77a30;box-shadow:0 12px 30px #0004}
.px-header-ready .px-pass h2 i{border-radius:7px;background:linear-gradient(145deg,#ffe5a4,#efc76b);box-shadow:inset 0 1px 0 #fff9}
.px-header-ready .px-pass-perks{gap:6px;padding:0;list-style:none}
.px-header-ready .px-pass-perks li{position:relative;padding:8px 10px 8px 25px;border:1px solid #ffffff10;border-radius:9px;background:#ffffff06}
.px-header-ready .px-pass-perks li::before{content:'';position:absolute;left:11px;top:14px;width:4px;height:4px;background:#e7c576;box-shadow:4px 0 #e7c576,0 4px #e7c576}
.px-header-ready .px-pass-note{font-size:12px}
.px-header-ready .px-pass button{border-radius:12px;transition:transform var(--px-press-time) var(--px-press-ease)}
.px-header-ready .px-pass button:not(:disabled):active{transform:translateY(1px) scale(.97)}
.px-header-ready .px-pass .px-pass-go{background:linear-gradient(145deg,#f27a61,#de5146);box-shadow:inset 0 1px 0 #fff3,0 2px 0 #0002}
@media(prefers-reduced-motion:reduce){.px-header-ready .px-pass button{transition:none;transform:none}.px-header-ready .px-pass button:active{transform:none}}
html[data-pixieed-motion=reduced] .px-pass button{transition:none;transform:none}
html[data-pixieed-motion=reduced] .px-pass button:active{transform:none}

/* Native details keep their focus and dismissal behavior; only presentation moves. */
.px-header-ready [data-px-panel-motion^=reveal]{transform-origin:var(--px-panel-origin-x,50%) var(--px-panel-origin-y,100%);pointer-events:auto}
.px-header-ready [data-px-panel-motion=reveal-a]{animation:px-panel-reveal-a 180ms var(--px-press-ease) 1}
.px-header-ready [data-px-panel-motion=reveal-b]{animation:px-panel-reveal-b 180ms var(--px-press-ease) 1}
.px-header-ready [data-px-panel-motion=return-a]{animation:px-panel-return-a 140ms var(--px-press-ease) 1}
.px-header-ready [data-px-panel-motion=return-b]{animation:px-panel-return-b 140ms var(--px-press-ease) 1}
@keyframes px-panel-reveal-a{from{opacity:.4;transform:translateY(3px) scale(.975)}to{opacity:1;transform:none}}
@keyframes px-panel-reveal-b{from{opacity:.4;transform:translateY(3px) scale(.975)}to{opacity:1;transform:none}}
@keyframes px-panel-return-a{0%,100%{transform:none}45%{transform:scale(.96)}}
@keyframes px-panel-return-b{0%,100%{transform:none}45%{transform:scale(.96)}}
/* One pixel enters the bank after an extension; its duration remains bounded. */
.px-header-pass[data-recharged=true] .px-pass-add::after{content:'';position:absolute;left:9px;top:29px;width:4px;height:4px;background:currentColor;pointer-events:none;animation:px-pass-deposit 240ms var(--px-press-ease) 1 both}
@keyframes px-pass-deposit{0%{opacity:0;transform:translate(65px,-16px) scale(.5)}25%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(1)}}
.px-pass-gauge-row[data-charged=true]::after{content:'';position:absolute;inset:0 auto 0 0;width:var(--px-charged-width,100%);pointer-events:none;background:linear-gradient(90deg,#fff3,#fff);transform-origin:left center;animation:px-pass-row-charge 220ms var(--px-press-ease) var(--px-charged-delay,0ms) 1 both}
@keyframes px-pass-row-charge{0%{opacity:0;transform:scaleX(.02)}45%{opacity:.8}100%{opacity:0;transform:scaleX(1)}}
.px-header-ready .px-header-pass:active .px-pass-add{transform:scale(.85)}
.px-pass-add{transition:transform 120ms var(--px-press-ease)}
@media(prefers-reduced-motion:reduce){.px-header-ready [data-px-panel-motion],.px-header-ready .px-pass-add::after{animation:none!important;transition:none!important}}
html[data-pixieed-motion=reduced] [data-px-panel-motion],html[data-pixieed-motion=reduced] .px-pass-add::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.px-header-ready .px-pass-gauge-row::after{animation:none!important}.px-header-ready .px-header-pass:active .px-pass-add{transform:none}}
html[data-pixieed-motion=reduced] .px-pass-gauge-row::after{animation:none!important}
html[data-pixieed-motion=reduced] .px-header-pass:active .px-pass-add{transform:none}
/* tool pages: the tool's name beside the logo, kept on phones too */
.px-site-header .px-header-brand--tool>span:not(.brand-mark){display:inline!important;overflow:hidden;min-width:0;font-weight:900;font-size:1rem;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap}
.px-site-header .px-header-brand--tool{flex:0 1 auto;min-width:0}
@media(max-width:360px){.px-site-header .px-header-brand--tool>span:not(.brand-mark){font-size:.9rem;letter-spacing:.02em}}
/* tight headers use the short name (ドットで音楽 → 音楽) */
@media(max-width:360px){.px-site-header .px-header-brand--tool>span[data-short]{font-size:0!important}.px-site-header .px-header-brand--tool>span[data-short]::after{content:attr(data-short);font-size:.95rem}}
@media(max-width:440px){.audio-heading.px-site-header .px-header-brand--tool>span[data-short],.lc-top.px-site-header .px-header-brand--tool>span[data-short]{font-size:0!important}.audio-heading.px-site-header .px-header-brand--tool>span[data-short]::after,.lc-top.px-site-header .px-header-brand--tool>span[data-short]::after{content:attr(data-short);font-size:.95rem}}
