:root{color-scheme:light;--bg: #f2f2f7;--surface: #ffffff;--surface-2: #e9e9ef;--surface-pressed: #dcdce3;--text: #111114;--text-2: #6b6b76;--border: rgb(0 0 0 / .08);--accent: #5b5bd6;--accent-pressed: #4747b8;--accent-soft: rgb(91 91 214 / .12);--accent-contrast: #ffffff;--danger: #e5484d;--success: #30a46c;--warning: #f2a516;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 4px 16px rgb(0 0 0 / .06);--chrome-bg: rgb(249 249 251 / .82);--header-h: 52px;--tabbar-h: 56px;--radius: 14px;--radius-sm: 10px;--gutter: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--ease-out: cubic-bezier(.32, .72, 0, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .16s;--dur: .32s;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--surface: #1c1c1f;--surface-2: #2a2a2e;--surface-pressed: #36363b;--text: #f4f4f6;--text-2: #9b9ba6;--border: rgb(255 255 255 / .1);--accent: #8f8ff5;--accent-pressed: #7474e0;--accent-soft: rgb(143 143 245 / .16);--accent-contrast: #0b0b1a;--shadow: 0 1px 2px rgb(0 0 0 / .4);--chrome-bg: rgb(22 22 24 / .82)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);overscroll-behavior-y:contain}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);overscroll-behavior-y:contain;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}a{color:var(--accent)}img{display:block;max-width:100%}button,.ui,.btn,.card-link,.list-item[role=button],.tab-bar,.app-header{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}a,button,[role=button],input,label,select,textarea{touch-action:manipulation}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page{padding:var(--gutter);padding-left:calc(var(--gutter) + var(--safe-left));padding-right:calc(var(--gutter) + var(--safe-right));display:flex;flex-direction:column;gap:16px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin:8px 4px -8px}.muted{color:var(--text-2);font-size:14px}.card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.pressable{transition:transform .22s var(--ease-out),background-color .22s var(--ease-out),opacity .22s var(--ease-out)}.pressable:active{transition-duration:0s;transform:scale(.97)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;font-weight:600;font-size:15px;background:var(--surface-2);color:var(--text);text-decoration:none;transition:transform .22s var(--ease-out),background-color .22s var(--ease-out)}.btn:active{transition-duration:0s;transform:scale(.96);background:var(--surface-pressed)}.btn:disabled{opacity:.45;pointer-events:none}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:active{background:var(--accent-pressed)}.btn-danger{background:var(--danger);color:#fff}.btn-block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.list{background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.list-item{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 16px;background:var(--surface);color:var(--text);text-decoration:none;width:100%;text-align:left;transition:background-color .2s}.list-item+.list-item{box-shadow:inset 0 1px 0 var(--border)}a.list-item:active,button.list-item:active{transition-duration:0s;background:var(--surface-pressed)}.list-item .grow{flex:1;min-width:0}.list-item .chevron{color:var(--text-2)}.segmented{display:flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:2px}.segmented button{flex:1;min-height:36px;border-radius:8px;font-size:14px;font-weight:500;transition:background-color .2s}.segmented button[aria-pressed=true]{background:var(--surface);box-shadow:var(--shadow);font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent)}.badge.ok{background:#30a46c26;color:var(--success)}.badge.ko{background:#e5484d26;color:var(--danger)}.standalone-only{display:none}@media(display-mode:standalone),(display-mode:fullscreen){.standalone-only{display:block}.browser-only{display:none}}html.no-view-transitions .page{animation:page-enter .22s var(--ease-out)}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.pressable,.btn,.list-item{transition:none}.pressable:active,.btn:active{transform:none}html.no-view-transitions .page{animation:none}}:root{--vt-dur: .4s;--vt-ease: cubic-bezier(.32, .72, 0, 1)}.app-header{view-transition-name:app-header}.tab-bar{view-transition-name:tab-bar}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:var(--vt-dur);animation-timing-function:var(--vt-ease)}html[data-vt=slide]::view-transition-old(root),html[data-vt=slide]::view-transition-new(root){mix-blend-mode:normal}html[data-vt=slide][data-nav-dir=forward]::view-transition-old(root){animation-name:vt-out-parallax-left}html[data-vt=slide][data-nav-dir=forward]::view-transition-new(root){animation-name:vt-in-from-right;box-shadow:-8px 0 32px #0000002e}html[data-vt=slide][data-nav-dir=back]::view-transition-old(root){animation-name:vt-out-to-right;z-index:1;box-shadow:-8px 0 32px #0000002e}html[data-vt=slide][data-nav-dir=back]::view-transition-new(root){animation-name:vt-in-parallax-left}@keyframes vt-in-from-right{0%{transform:translate(100%)}}@keyframes vt-out-to-right{to{transform:translate(100%)}}@keyframes vt-out-parallax-left{to{transform:translate(-30%);filter:brightness(.85)}}@keyframes vt-in-parallax-left{0%{transform:translate(-30%);filter:brightness(.85)}}html[data-vt=fade]{--vt-dur: .24s}html[data-vt=zoom]::view-transition-old(root),html[data-vt=zoom]::view-transition-new(root){mix-blend-mode:normal}html[data-vt=zoom][data-nav-dir=forward]::view-transition-old(root){animation-name:vt-zoom-out-small}html[data-vt=zoom][data-nav-dir=forward]::view-transition-new(root){animation-name:vt-zoom-in-from-big}html[data-vt=zoom][data-nav-dir=back]::view-transition-old(root){animation-name:vt-zoom-out-big}html[data-vt=zoom][data-nav-dir=back]::view-transition-new(root){animation-name:vt-zoom-in-from-small}@keyframes vt-zoom-out-small{to{transform:scale(.92);opacity:0}}@keyframes vt-zoom-in-from-big{0%{transform:scale(1.08);opacity:0}}@keyframes vt-zoom-out-big{to{transform:scale(1.08);opacity:0}}@keyframes vt-zoom-in-from-small{0%{transform:scale(.92);opacity:0}}html[data-vt=modal]::view-transition-old(root),html[data-vt=modal]::view-transition-new(root){mix-blend-mode:normal}html[data-vt=modal][data-nav-dir=forward]::view-transition-old(root){animation-name:vt-recede}html[data-vt=modal][data-nav-dir=forward]::view-transition-new(root){animation-name:vt-in-from-bottom}html[data-vt=modal][data-nav-dir=back]::view-transition-old(root){animation-name:vt-out-to-bottom;z-index:1}html[data-vt=modal][data-nav-dir=back]::view-transition-new(root){animation-name:vt-come-forward}@keyframes vt-in-from-bottom{0%{transform:translateY(100%)}}@keyframes vt-out-to-bottom{to{transform:translateY(100%)}}@keyframes vt-recede{to{transform:scale(.94);filter:brightness(.7);border-radius:16px}}@keyframes vt-come-forward{0%{transform:scale(.94);filter:brightness(.7);border-radius:16px}}html[data-vt=hero]{--vt-dur: .45s}html[data-vt=hero]::view-transition-old(root),html[data-vt=hero]::view-transition-new(root){animation-duration:.22s}::view-transition-old(gallery-hero),::view-transition-new(gallery-hero){height:100%;object-fit:cover}html[data-vt=swipe-back]::view-transition-old(root),html[data-vt=swipe-back]::view-transition-new(root){mix-blend-mode:normal;animation-timing-function:cubic-bezier(.2,.6,.3,1)}html[data-vt=swipe-back]::view-transition-old(root){animation-name:vt-swipe-out;z-index:1;box-shadow:-8px 0 32px #0000002e}html[data-vt=swipe-back]::view-transition-new(root){animation-name:vt-swipe-under}@keyframes vt-swipe-out{0%{transform:translate(calc(var(--swipe-progress, 0) * 100%))}to{transform:translate(100%)}}@keyframes vt-swipe-under{0%{transform:translate(calc((1 - var(--swipe-progress, 0)) * -30%));filter:brightness(calc(.85 + .15 * var(--swipe-progress, 0)))}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-fade-out{to{opacity:0}}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:vt-fade-out .12s ease both!important;z-index:auto!important}::view-transition-new(*){animation:vt-fade-in .12s ease both!important}}.swipe-back-edge{position:fixed;left:0;top:calc(var(--header-h) + var(--safe-top));bottom:calc(var(--tabbar-h) + var(--safe-bottom));width:calc(20px + var(--safe-left));z-index:19;touch-action:none}.swipe-back-edge[hidden]{display:none}html.show-swipe-edge .swipe-back-edge{background:linear-gradient(to right,var(--accent-soft),transparent);box-shadow:inset 2px 0 0 var(--accent)}.app-main.is-swiping{will-change:transform;background:var(--bg);box-shadow:-8px 0 32px #0000002e}.ptr-host{position:relative}.ptr-host>:not(.ptr-indicator){transform:translateY(var(--ptr-offset, 0px));transition:transform .32s var(--ease-out)}.ptr-indicator{position:absolute;top:0;left:50%;z-index:1;width:40px;height:40px;margin-left:-20px;display:grid;place-items:center;border-radius:50%;background:var(--surface);box-shadow:var(--shadow);opacity:var(--ptr-progress, 0);transform:translateY(calc(var(--ptr-offset, 0px) - 48px)) scale(calc(.6 + .4 * var(--ptr-progress, 0)));transition:transform .32s var(--ease-out),opacity .2s;pointer-events:none}.ptr-spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--accent);border-right-color:transparent;transform:rotate(calc(var(--ptr-progress, 0) * 300deg))}.ptr-pulling{-webkit-user-select:none;user-select:none}.ptr-pulling>:not(.ptr-indicator),.ptr-pulling .ptr-indicator{transition:none}.ptr-refreshing .ptr-indicator{opacity:1}.ptr-refreshing .ptr-spinner{animation:ptr-spin .7s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ptr-host>:not(.ptr-indicator),.ptr-indicator{transition:none}.ptr-refreshing .ptr-spinner{animation-duration:2s}}
