body.auth-page{background:var(--bg-page);display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-4);position:relative}body.auth-page:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;background-repeat:no-repeat;z-index:-1;transition:opacity .3s ease}body.auth-page:before{opacity:1}body.auth-page[data-bg=clocktower]:before{background-image:url(/static/assets/backgrounds/clocktower_1x.jpg)}body.auth-page[data-bg=fountain]:before{background-image:url(/static/assets/backgrounds/fountain_1x.jpg?v=2)}body.auth-page[data-bg=fairytale]:before{background-image:url(/static/assets/backgrounds/fairytale_1x.jpg)}body.auth-page[data-bg=sunsettown]:before{background-image:url(/static/assets/backgrounds/sunsettown_1x.jpg?v=2)}body.auth-page[data-bg=outlinedsunset]:before{background-image:url(/static/assets/backgrounds/outlinedsunset_1x.jpg)}body.auth-page[data-bg=outlinedhilltop]:before{background-image:url(/static/assets/backgrounds/outlinedhilltop_1x.jpg)}body.auth-page[data-bg=duskcastle]:before{background-image:url(/static/assets/backgrounds/duskcastle_1x.jpg)}body.auth-page[data-bg=nightvillage]:before{background-image:url(/static/assets/backgrounds/nightvillage_1x.jpg)}body.auth-page[data-bg=harborsunset]:before{background-image:url(/static/assets/backgrounds/harborsunset_1x.jpg)}@media(-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){body.auth-page[data-bg=clocktower]:before{background-image:url(/static/assets/backgrounds/clocktower_2x.jpg)}body.auth-page[data-bg=fountain]:before{background-image:url(/static/assets/backgrounds/fountain_2x.jpg?v=2)}body.auth-page[data-bg=fairytale]:before{background-image:url(/static/assets/backgrounds/fairytale_2x.jpg)}body.auth-page[data-bg=sunsettown]:before{background-image:url(/static/assets/backgrounds/sunsettown_2x.jpg?v=2)}body.auth-page[data-bg=outlinedsunset]:before{background-image:url(/static/assets/backgrounds/outlinedsunset_2x.jpg)}body.auth-page[data-bg=outlinedhilltop]:before{background-image:url(/static/assets/backgrounds/outlinedhilltop_2x.jpg)}body.auth-page[data-bg=duskcastle]:before{background-image:url(/static/assets/backgrounds/duskcastle_2x.jpg)}body.auth-page[data-bg=nightvillage]:before{background-image:url(/static/assets/backgrounds/nightvillage_2x.jpg)}body.auth-page[data-bg=harborsunset]:before{background-image:url(/static/assets/backgrounds/harborsunset_2x.jpg)}}@media(-webkit-min-device-pixel-ratio:2.5),(min-resolution:240dpi),(min-width:2560px){body.auth-page[data-bg=clocktower]:before{background-image:url(/static/assets/backgrounds/clocktower_4x.jpg)}body.auth-page[data-bg=fountain]:before{background-image:url(/static/assets/backgrounds/fountain_4x.jpg?v=2)}body.auth-page[data-bg=fairytale]:before{background-image:url(/static/assets/backgrounds/fairytale_4x.jpg)}body.auth-page[data-bg=sunsettown]:before{background-image:url(/static/assets/backgrounds/sunsettown_4x.jpg?v=2)}body.auth-page[data-bg=outlinedsunset]:before{background-image:url(/static/assets/backgrounds/outlinedsunset_4x.jpg)}body.auth-page[data-bg=outlinedhilltop]:before{background-image:url(/static/assets/backgrounds/outlinedhilltop_4x.jpg)}body.auth-page[data-bg=duskcastle]:before{background-image:url(/static/assets/backgrounds/duskcastle_4x.jpg)}body.auth-page[data-bg=nightvillage]:before{background-image:url(/static/assets/backgrounds/nightvillage_4x.jpg)}body.auth-page[data-bg=harborsunset]:before{background-image:url(/static/assets/backgrounds/harborsunset_4x.jpg)}}.auth-theme-toggle{position:fixed;top:var(--space-4);right:var(--space-4);width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:color .15s,border-color .15s;z-index:10}.auth-theme-toggle:hover{color:var(--text-primary);border-color:var(--border-strong)}.auth-theme-toggle svg{width:18px;height:18px}.auth-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-10);width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-container.centered{text-align:center}.auth-header{text-align:center;margin-bottom:var(--space-8)}.auth-header h1{font-size:24px;font-weight:700;margin-bottom:var(--space-2);letter-spacing:-.01em}.auth-header .brand-accent{color:var(--primary)}.auth-header .subtitle{color:var(--text-secondary);font-size:14px}.auth-container .form-group{margin-bottom:var(--space-5)}.auth-container label{color:var(--text-primary)}.auth-container input{padding:12px 16px;height:44px;border:1px solid var(--border);background:var(--bg-surface);font-size:16px}.auth-container input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.auth-container select{padding:12px 16px;height:44px;border:1px solid var(--border);background:var(--bg-surface);font-size:16px}.auth-container select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.auth-container button[type=submit],.auth-container .btn-auth{display:flex;align-items:center;justify-content:center;width:100%;height:44px;padding:0 24px;background:var(--primary);border:none;border-radius:var(--radius);color:var(--primary-foreground);font-family:var(--font-sans);font-size:16px;font-weight:600;cursor:pointer;transition:background .15s}.auth-container button[type=submit]:hover,.auth-container .btn-auth:hover{background:var(--primary-hover)}.auth-container button[type=submit]:active,.auth-container .btn-auth:active{transform:translateY(1px)}.auth-container button[type=submit]:disabled,.auth-container .btn-auth:disabled{opacity:.5;cursor:not-allowed;transform:none}.checkbox-group{margin-bottom:var(--space-6)}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:14px;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin-right:10px;accent-color:var(--primary);cursor:pointer}.auth-footer{margin-top:var(--space-5);text-align:center;font-size:12px;color:var(--text-muted)}.auth-footer a{color:var(--text-secondary);margin:0 var(--space-1)}.auth-footer a:hover{color:var(--primary)}.auth-links{display:flex;justify-content:space-between;margin-top:var(--space-5);font-size:14px}.auth-links a{color:var(--primary)}.auth-links a:hover{text-decoration:underline}.auth-link-center{display:block;text-align:center;margin-top:var(--space-5);color:var(--primary);font-size:14px}.auth-link-center:hover{text-decoration:underline}.register-rewards{margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary)}.register-rewards-title{font-weight:600;margin-bottom:var(--space-2)}.register-rewards-list{margin:0 0 var(--space-2);padding:0;list-style:none}.register-rewards-list li{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0}.register-rewards-pts{font-weight:600;color:var(--success-text);white-space:nowrap}.register-rewards-note{margin:0;color:var(--text-secondary);font-size:var(--text-xs)}.register-rewards-note a{color:var(--primary);text-decoration:underline}.rewards-table-wrap{max-width:100%;overflow-x:auto;margin:0 0 var(--space-3)}.rewards-table{width:100%;margin:0;border-collapse:collapse;font-size:var(--text-sm);color:var(--text-primary)}.rewards-table th,.rewards-table td{padding:var(--space-2);border-bottom:1px solid var(--border);text-align:left}.rewards-table thead th{color:var(--text-secondary);font-weight:600}.rewards-table tfoot th,.rewards-table tfoot td{border-bottom:none;font-weight:600}.rewards-table .rewards-num{text-align:right;white-space:nowrap}@media(max-width:480px){.rewards-table,.rewards-table tbody,.rewards-table tfoot,.rewards-table tr,.rewards-table th,.rewards-table td{display:block}.rewards-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rewards-table tr{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.rewards-table tfoot tr{border-bottom:none}.rewards-table th,.rewards-table td{padding:var(--space-1) 0;border-bottom:none}.rewards-table .rewards-milestone{font-weight:600}.rewards-table .rewards-num{display:flex;justify-content:space-between;gap:var(--space-3);white-space:normal}.rewards-table .rewards-num:before{content:attr(data-label);color:var(--text-secondary);font-weight:400;text-align:left}}.rewards-terms{margin:0 0 var(--space-3);font-size:var(--text-read);line-height:var(--leading-read)}.rewards-terms dt{font-weight:600;color:var(--text-primary)}.rewards-terms dd{margin:0 0 var(--space-2);color:var(--text-primary)}.legal-section .rewards-callout{padding:var(--space-3);background:var(--info-bg);border:1px solid var(--info-border);border-radius:var(--radius);color:var(--text-primary)}.legal-section .rewards-callout--warning{background:var(--warning-bg);border-color:var(--warning-border)}.rewards-cta{margin-top:var(--space-5);text-align:center;color:var(--text-secondary);font-size:var(--text-sm)}.rewards-cta .btn-auth{margin-top:var(--space-2);text-decoration:none}.rewards-tabs{display:flex;max-width:100%;margin:0 0 var(--space-5);overflow-x:auto;border-bottom:1px solid var(--border);scrollbar-width:thin}.rewards-tabs[hidden]{display:none}.rewards-tab{flex:0 0 auto;min-height:44px;padding:var(--space-2) var(--space-4);margin-bottom:-1px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer}.rewards-tab:hover{color:var(--text-primary)}.rewards-tab[aria-selected=true]{color:var(--text-primary);font-weight:600;border-bottom-color:var(--primary)}.rewards-tab:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:var(--radius-sm)}.rewards-panel:focus-visible:not(:target){outline:2px solid var(--ring);outline-offset:var(--ring-offset);border-radius:var(--radius)}.rewards-panel:target:focus{outline:none}.rewards-panel[hidden]{display:none}.legal-section .rewards-shop-link{display:inline-flex;align-items:center;min-height:44px;color:var(--primary);text-decoration:underline}.rewards-shop-list{margin:0;padding:0;list-style:none}.legal-section .rewards-shop-list{padding-left:0}.legal-section .rewards-shop-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3);margin:0;padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.legal-section .rewards-shop-item:last-child{border-bottom:none}.rewards-shop-icon{flex:0 0 24px;width:24px;height:24px;object-fit:contain;image-rendering:pixelated}.rewards-shop-icon[hidden]{display:none}.rewards-shop-name{flex:1 1 0;min-width:0;overflow-wrap:anywhere}.rewards-shop-price{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.password-hint{font-size:12px;color:var(--text-muted);margin-top:var(--space-1)}.auth-logo{display:block;width:320px;max-width:none;height:auto;margin:0 auto var(--space-3)}.auth-logo-dark{display:block}.auth-logo-light{display:none}[data-theme=dark] .auth-logo-dark{display:block}[data-theme=dark] .auth-logo-light,[data-theme=light] .auth-logo-dark{display:none}[data-theme=light] .auth-logo-light{display:block}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .auth-logo-dark{display:none}:root:not([data-theme=dark]) .auth-logo-light{display:block}}.auth-brand-mascots{display:block;max-width:260px;height:auto;margin:0 auto var(--space-3)}.auth-mascots-dark{display:block}.auth-mascots-light{display:none}[data-theme=dark] .auth-mascots-dark{display:block}[data-theme=dark] .auth-mascots-light,[data-theme=light] .auth-mascots-dark{display:none}[data-theme=light] .auth-mascots-light{display:block}@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .auth-mascots-dark{display:none}:root:not([data-theme=dark]) .auth-mascots-light{display:block}}.auth-header .auth-attribution{font-family:Rajdhani,sans-serif;font-size:10px;font-weight:400;color:var(--text-muted);letter-spacing:.12em;margin-top:-2px;margin-bottom:var(--space-2)}.verify-icon{font-size:48px;margin-bottom:var(--space-4)}.verify-icon.success{color:var(--success)}.verify-icon.error{color:var(--error)}.username-highlight{font-weight:600;color:var(--primary)}.auth-container .error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-5);font-size:14px}.info-text{text-align:center;color:var(--text-muted);font-size:12px;margin-top:var(--space-5)}.password-wrapper{position:relative}.password-wrapper input{padding-right:44px}.password-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:42px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:0 var(--radius) var(--radius) 0;transition:color .15s}.password-toggle:hover{color:var(--text-primary)}.password-toggle svg{width:18px;height:18px}.field-error{font-size:12px;color:var(--error);margin-top:var(--space-1);display:none}.field-error.visible{display:block}.auth-container input.invalid{border-color:var(--error)}.auth-container input.valid{border-color:var(--success)}.password-strength{height:4px;border-radius:2px;background:var(--bg-muted);margin-top:var(--space-2);overflow:hidden}.password-strength-bar{height:100%;border-radius:2px;transition:width .2s,background-color .2s;width:0}.password-strength-label{font-size:11px;margin-top:2px;color:var(--text-muted)}@media(max-width:480px){body.auth-page{padding:0;align-items:stretch}body.auth-page:before{display:none}.auth-theme-toggle{top:env(safe-area-inset-top,var(--space-3));right:var(--space-3);z-index:10}.auth-container{max-width:none;min-height:100vh;min-height:100dvh;border:none;border-radius:0;box-shadow:none;padding:var(--space-6);padding-top:calc(env(safe-area-inset-top,0px) + var(--space-10));display:flex;flex-direction:column;justify-content:center}.auth-header{margin-bottom:var(--space-5)}.auth-logo{width:200px}.auth-brand-mascots{max-width:140px;margin-bottom:var(--space-2)}.auth-header h1{font-size:20px}.auth-header .subtitle{font-size:13px}.auth-header .auth-attribution{display:none}.auth-links{margin-top:var(--space-4)}}
