.ps{height:100%;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);min-height:0}.ps-topbar{flex:none;display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem 1rem;padding-top:max(.5rem,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:#ffffffb3}.ps-brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--brand-ink)}.ps-save{margin-left:auto;font-size:.8125rem;font-weight:600;color:var(--ink-3);min-width:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ps-save[data-state=ok]:before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--mint);margin-right:.4rem}.ps-save[data-state=error]{color:var(--danger)}.ps-icon-btn{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast);touch-action:manipulation}.ps-icon-btn:hover{background:var(--paper-2)}.ps-icon-btn:active{transform:scale(.94)}.ps-banner{flex:none;padding:.65rem 1rem;font-size:var(--fs-0);font-weight:600;background:var(--sky-soft);color:#14557f}.ps-banner[data-kind=warn]{background:var(--sun-soft);color:#7a5000}.ps-banner[data-kind=error]{background:var(--danger-soft);color:var(--danger)}.ps-setup{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.25rem 1rem calc(2rem + var(--safe-b))}.ps-setup-inner{max-width:60rem;margin:0 auto;display:grid;gap:1rem}.ps-h{font-family:var(--font-display);font-size:var(--fs-3);margin-top:.5rem}.ps-resume{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:1rem;border-radius:var(--r-l);background:var(--surface);border:1.5px solid var(--brand);box-shadow:var(--shadow-m)}.ps-resume-thumb{width:6.5rem;aspect-ratio:4 / 3;border-radius:var(--r-s);overflow:hidden;background:var(--paper-2)}.ps-resume-thumb img{width:100%;height:100%;object-fit:cover}.ps-resume-body{display:grid;gap:.5rem}.ps-resume h2{font-size:var(--fs-2);font-family:var(--font-body)}.ps-resume p{color:var(--ink-2);font-size:var(--fs-0)}.ps-row{display:flex;flex-wrap:wrap;gap:.5rem}.ps-col{display:grid;gap:.5rem}.ps-gallery{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:40rem){.ps-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:64rem){.ps-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}.ps-tile{position:relative;display:grid;gap:.15rem;padding:.5rem .5rem .7rem;border-radius:var(--r-m);border:2px solid transparent;background:var(--surface);box-shadow:var(--shadow-s);cursor:pointer;text-align:left;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast),border-color var(--t-fast);touch-action:manipulation}.ps-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-m)}.ps-tile:active{transform:scale(.98)}.ps-tile[aria-checked=true],.ps-tile.is-selected{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft),var(--shadow-m)}.ps-tile[aria-checked=true]:after,.ps-tile.is-selected:after{content:"";position:absolute;right:.9rem;top:.9rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;box-shadow:0 2px 6px #00000040}.ps-tile-img{aspect-ratio:4 / 3;border-radius:calc(var(--r-m) - 6px);overflow:hidden;background:var(--paper-2)}.ps-tile-img img{width:100%;height:100%;object-fit:cover}.ps-tile-name{font-weight:650;font-size:var(--fs-0);line-height:1.25;padding:.35rem .25rem 0}.ps-tile-theme{font-size:.78rem;color:var(--ink-3);padding:0 .25rem}.ps-upload{border-style:dashed;border-color:var(--line-strong)}.ps-upload-img{display:grid;place-items:center;color:var(--brand-ink);background:var(--brand-soft)}.ps-upload:focus-within{box-shadow:var(--focus)}.ps-msg{min-height:1.4em;font-size:var(--fs-0);font-weight:600;color:var(--ink-2)}.ps-msg[data-kind=error]{color:var(--danger)}.ps-msg[data-kind=ok]{color:#0f6b52}.ps-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}@media(max-width:34rem){.ps-levels{grid-template-columns:repeat(3,minmax(0,1fr))}}.ps-level{display:grid;gap:.1rem;justify-items:center;padding:.7rem .3rem;border-radius:var(--r-m);border:2px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color var(--t-fast),background-color var(--t-fast),transform var(--t-fast);touch-action:manipulation;min-height:4.2rem}.ps-level b{font-family:var(--font-display);font-size:1.5rem;line-height:1}.ps-level span{font-size:.75rem;color:var(--ink-3);font-weight:600;text-align:center}.ps-level:hover{border-color:var(--ink-3)}.ps-level:active{transform:scale(.97)}.ps-level[aria-checked=true]{border-color:var(--brand);background:var(--brand-soft)}.ps-level[aria-checked=true] b,.ps-level[aria-checked=true] span{color:var(--brand-ink)}.ps-start-row{display:flex;justify-content:center;padding-top:.75rem;position:sticky;bottom:0;padding-bottom:.5rem;background:linear-gradient(to top,var(--paper) 55%,transparent)}.ps-play{flex:1;min-height:0;display:flex;flex-direction:column}.ps-hud{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem .75rem;padding:.5rem .75rem;background:#ffffffb3;border-bottom:1px solid var(--line)}.ps-stats{display:flex;align-items:center;gap:.6rem;flex:1 1 14rem;min-width:0}.ps-chip{display:inline-flex;align-items:center;gap:.35rem;font-variant-numeric:tabular-nums;font-weight:700;padding:.3rem .7rem;border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-2)}.ps-chip b{min-width:2.5ch}.ps-progress{position:relative;flex:1;height:.65rem;min-width:3rem;border-radius:var(--r-pill);background:var(--paper-2);overflow:hidden}.ps-progress i{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#7c6cf0);transform-origin:left;transform:scaleX(0);transition:transform .4s var(--ease)}.ps-progress-text{font-size:.8125rem;font-weight:700;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.ps-tools{display:flex;gap:.35rem;margin-left:auto}.ps-tool{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast),border-color var(--t-fast);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ps-tool:hover{background:var(--paper-2)}.ps-tool:active{transform:scale(.92)}.ps-tool[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}.ps-tool-main{border-color:var(--ink)}.ps-stage{position:relative;flex:1;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 30%,#fff,var(--paper) 70%);touch-action:none}.ps-stage canvas{position:absolute;inset:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none;cursor:grab}.ps-stage canvas:active{cursor:grabbing}.ps-stage canvas:focus-visible{box-shadow:inset 0 0 0 3px var(--brand);border-radius:0}.ps-overlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:1rem;background:#fbf8f2eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-align:center;animation:fade-in var(--t-med) var(--ease);overflow-y:auto}.ps-win{background:#fbf8f28c}.ps-card{width:min(24rem,100%);display:grid;gap:.9rem;padding:1.75rem 1.5rem;background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-l);border:1px solid var(--line);animation:rise .5s var(--ease) both}.ps-card h2{font-size:var(--fs-3)}.ps-card p{color:var(--ink-2)}.ps-help{font-size:.78rem!important;color:var(--ink-3)!important}.ps-win-badge{width:4rem;height:4rem;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--mint-soft);color:#0f6b52;animation:pop .6s var(--ease) both}.ps-spinner{width:2.6rem;height:2.6rem;border-radius:50%;border:4px solid var(--brand-soft);border-top-color:var(--brand);animation:spin .8s linear infinite}.ps-dialog{border:0;border-radius:var(--r-l);padding:1.5rem;box-shadow:var(--shadow-l);max-width:min(24rem,calc(100% - 2rem));background:var(--surface);color:var(--ink)}.ps-dialog::backdrop{background:#1d234080}.ps-dialog p{margin-bottom:1.25rem;font-weight:600}.ps-dialog .ps-row{justify-content:flex-end}@media(max-width:30rem){.ps-resume{grid-template-columns:1fr}.ps-resume-thumb{width:100%;max-width:12rem}}@media(max-height:30rem)and (orientation:landscape){.ps-topbar,.ps-hud{padding-block:.25rem}}@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.ps-win{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;place-items:end center;pointer-events:none}.ps-win .ps-card{pointer-events:auto;margin-bottom:.5rem}
