@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap');
:root {
    --app-safe-top: max(env(safe-area-inset-top, 0px), var(--tg-content-safe-area-inset-top, 0px));
    --app-safe-right: max(env(safe-area-inset-right, 0px), var(--tg-content-safe-area-inset-right, 0px));
    --app-safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--tg-content-safe-area-inset-bottom, 0px));
    --app-safe-left: max(env(safe-area-inset-left, 0px), var(--tg-content-safe-area-inset-left, 0px));
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: var(--color-bg-primary);
    position: fixed;
    width: 100%;
}

body {
    font-family: var(--font-primary);
    font-size: var(--fs-base);
    line-height: var(--lh-base);
    color: var(--color-text-primary);
    min-height: 100dvh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img,video,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;border:none;outline:none;background:none}
button{cursor:pointer;-webkit-user-select:none;user-select:none}
ul,ol{list-style:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight)}
h1{font-size:var(--fs-2xl)} h2{font-size:var(--fs-xl)} h3{font-size:var(--fs-lg)} h4{font-size:var(--fs-md)}
p{color:var(--color-text-secondary);line-height:var(--lh-relaxed)}
::selection{background:var(--color-accent);color:#fff}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-full)}
input::placeholder,textarea::placeholder{color:var(--color-text-muted)}
#app {
    max-width: var(--max-width);
    margin: 0 auto;
    height: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
#app-shell:not(.hidden), 
.age-gate:not(.hidden), 
.role-select:not(.hidden),
.auth-view:not(.hidden) {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
}
.view {
    display: none;
    flex: 1;
    overflow-y: scroll;
    overflow-x: hidden;
    position: relative;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(var(--nav-height) + var(--app-safe-bottom) + var(--space-md));
    animation: viewFadeIn var(--t-slow) var(--ease-out);
}

.view.active {
    display: flex;
    flex-direction: column;
}
@keyframes viewFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.header{position:sticky;top:0;z-index:var(--z-sticky);min-height:calc(var(--header-height) + var(--app-safe-top));padding-top:var(--app-safe-top);display:flex;align-items:center;justify-content:space-between;padding-left:max(var(--space-md),var(--app-safe-left));padding-right:max(var(--space-md),var(--app-safe-right));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border)}
.header__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);background:linear-gradient(135deg,var(--color-accent),var(--color-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.header__actions{display:flex;gap:var(--space-sm)}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--max-width);height:calc(var(--nav-height) + var(--app-safe-bottom));display:flex;align-items:center;justify-content:space-around;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);z-index:var(--z-sticky);padding-bottom:var(--app-safe-bottom);padding-left:var(--app-safe-left);padding-right:var(--app-safe-right)}
.nav-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) var(--space-md);color:var(--color-text-muted);transition:color var(--t-base);font-size:var(--fs-xs);cursor:pointer;position:relative}
.nav-item svg{width:22px;height:22px;transition:transform var(--t-base) var(--ease-bounce)}
.nav-item.active{color:var(--color-accent)}
.nav-item.active svg{transform:scale(1.15)}
.nav-item__badge{position:absolute;top:0;right:4px;width:16px;height:16px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-size:10px;font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.container{padding:var(--space-md)}
.text-gold{color:var(--color-gold)}
.text-accent{color:var(--color-accent)}
.text-muted{color:var(--color-text-muted)}
.text-center{text-align:center}
.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}
.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}
.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}
