:root{--z-auth-card: 1;--z-auth-glow: -1}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(145deg,var(--color-base-200) 0%,var(--color-base-300) 50%,var(--color-base-200) 100%);position:relative}.auth-page:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.02;pointer-events:none}.auth-page.journal-surface{background:radial-gradient(circle at top,var(--journal-wash),transparent 60%),var(--journal-paper)}.auth-card{width:100%;max-width:380px;position:relative;z-index:var(--z-auth-card);animation:authFadeIn .5s ease-out}.auth-card.journal-card{padding:.75rem;border-radius:1.5rem;border:1px dashed color-mix(in oklab,var(--color-base-content) 14%,transparent);background:color-mix(in oklab,var(--color-base-200) 92%,var(--journal-paper, #f5f7fa) 8%)}.auth-cover-stamp{position:absolute;top:.75rem;right:.75rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:.35rem .6rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-base-content) 20%,transparent);color:color-mix(in oklab,var(--color-base-content) 60%,transparent);background:color-mix(in oklab,var(--color-base-100) 80%,var(--journal-paper, #f5f7fa) 20%);pointer-events:none}.auth-card:before{content:"";position:absolute;inset:-20px;border-radius:1.5rem;background:radial-gradient(60% 60% at 50% 0%,color-mix(in oklab,var(--color-accent) 18%,transparent),color-mix(in oklab,var(--color-accent) 0%,transparent) 70%);opacity:.6;z-index:var(--z-auth-glow);pointer-events:none}@keyframes authFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.auth-card{animation:none}.auth-spinner{animation-duration:1.2s}}.auth-logo{display:flex;align-items:center;justify-content:center;gap:.625rem;margin-bottom:2rem}.auth-logo img{width:4.5rem;height:auto;object-fit:contain;border-radius:.5rem}.auth-logo-text{font-size:1.375rem;font-weight:700;font-family:var(--font-sans);letter-spacing:-.02em}.auth-header{text-align:center;margin-bottom:2rem}.auth-title{font-size:1.75rem;font-weight:600;letter-spacing:-.03em;margin-bottom:.5rem;background:linear-gradient(135deg,var(--color-base-content) 0%,color-mix(in oklab,var(--color-base-content) 80%,transparent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{font-size:.9375rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);font-weight:400}.auth-cover-stamp{display:inline-flex;align-items:center;justify-content:center}.journal-heading{font-family:var(--font-heading)}.auth-form-container{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--color-base-100) 0%,color-mix(in oklab,var(--color-base-100) 94%,transparent) 100%);border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:1rem;padding:1.75rem;box-shadow:0 0 0 1px color-mix(in oklab,var(--color-base-content) 5%,transparent),0 18px 40px -24px #00000080}.auth-alerts{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-input-group{display:flex;flex-direction:column;gap:.5rem}.auth-label{font-size:.8125rem;font-weight:500;color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}.auth-input-wrap{position:relative}.auth-input{width:100%;height:2.875rem;padding:0 1rem;font-size:.9375rem;background:var(--color-base-200);border:1px solid color-mix(in oklab,var(--color-base-content) 22%,transparent);border-radius:.625rem;color:var(--color-base-content);box-shadow:inset 0 1px 1px #00000040,0 1px 2px #0003;transition:all .15s ease}.auth-input.with-toggle{padding-right:3rem}.auth-input.is-invalid{border-color:var(--color-error);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-error) 20%,transparent),inset 0 1px 1px #00000040}.auth-input::placeholder{color:color-mix(in oklab,var(--color-base-content) 35%,transparent)}.auth-input:hover{border-color:color-mix(in oklab,var(--color-base-content) 32%,transparent)}.auth-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent),inset 0 1px 1px #00000040}.auth-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.auth-toggle:hover{color:color-mix(in oklab,var(--color-base-content) 75%,transparent)}.auth-toggle:focus-visible{outline:2px solid color-mix(in oklab,var(--color-accent) 60%,transparent);outline-offset:2px;border-radius:.25rem}.auth-button{position:relative;width:100%;height:2.875rem;font-size:.9375rem;font-weight:600;border:none;border-radius:.625rem;cursor:pointer;overflow:hidden;transition:all .2s ease;background:linear-gradient(135deg,var(--color-primary) 0%,color-mix(in oklab,var(--color-primary) 85%,transparent) 100%);color:var(--color-primary-content);box-shadow:inset 0 1px #ffffff1a,0 2px 8px color-mix(in oklab,var(--color-primary) 25%,transparent)}.auth-button:hover{transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1a,0 4px 16px color-mix(in oklab,var(--color-primary) 35%,transparent)}.auth-button:active{transform:translateY(0);box-shadow:inset 0 1px #ffffff1a,0 2px 6px color-mix(in oklab,var(--color-primary) 20%,transparent)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}a.auth-button{display:flex;align-items:center;justify-content:center;text-decoration:none}.auth-button-content{display:flex;align-items:center;justify-content:center;gap:.5rem;transition:opacity .15s ease}.auth-button.is-loading .auth-button-content{opacity:0}.auth-button-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}.auth-button.is-loading .auth-button-spinner{opacity:1}.auth-spinner{width:1.25rem;height:1.25rem;border:2px solid color-mix(in oklab,var(--color-primary-content) 30%,transparent);border-top-color:var(--color-primary-content);border-radius:50%;animation:authSpin .7s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-hint{text-align:center;font-size:.8125rem;color:color-mix(in oklab,var(--color-base-content) 45%,transparent);margin-top:1rem}.auth-helper{font-size:.75rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);margin-top:.375rem;min-height:1.125rem}.auth-helper.is-error{color:color-mix(in oklab,var(--color-error) 80%,transparent)}.auth-security{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;font-size:.75rem;color:color-mix(in oklab,var(--color-base-content) 40%,transparent)}.auth-security i{font-size:.8125rem;color:color-mix(in oklab,var(--color-success) 70%,transparent)}.auth-footer{margin-top:2rem;display:flex;justify-content:center;gap:1.5rem}.auth-footer-link{font-size:.75rem;color:color-mix(in oklab,var(--color-base-content) 45%,transparent);text-decoration:none;transition:color .15s ease}.auth-footer-link:hover{color:color-mix(in oklab,var(--color-base-content) 70%,transparent)}.auth-dev-login{margin-top:1rem;padding:.875rem;border-radius:.5rem;border:1px solid color-mix(in oklab,var(--color-accent) 35%,transparent);background:color-mix(in oklab,var(--color-accent) 10%,transparent);text-align:left}.auth-dev-login-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:color-mix(in oklab,var(--color-accent) 70%,transparent)}.auth-dev-login-text{margin:.5rem 0 .75rem;font-size:.8125rem;color:color-mix(in oklab,var(--color-base-content) 70%,transparent);line-height:1.4}.auth-dev-login-link{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .75rem;border-radius:999px;background:var(--color-accent);color:var(--color-accent-content);font-size:.8125rem;font-weight:600;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.auth-dev-login-link:hover{transform:translateY(-1px);box-shadow:0 8px 20px color-mix(in oklab,var(--color-accent) 35%,transparent)}@media(max-width:640px){.auth-page{padding:1rem}.auth-card{max-width:340px}.auth-logo,.auth-header{margin-bottom:1.5rem}.auth-title{font-size:1.5rem}.auth-form-container{padding:1.5rem}.auth-form{gap:1rem}}@media(max-width:480px){.auth-form-container{padding:1.25rem}}.auth-divider{display:flex;align-items:center;margin:1.25rem 0;gap:.75rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:color-mix(in oklab,var(--color-base-content) 12%,transparent)}.auth-divider-text{font-size:.75rem;color:color-mix(in oklab,var(--color-base-content) 45%,transparent);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.auth-social-buttons{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem}.auth-social-button{display:flex;align-items:center;justify-content:center;gap:.625rem;width:100%;padding:.625rem 1rem;border-radius:.5rem;border:1px solid color-mix(in oklab,var(--color-base-content) 15%,transparent);background:transparent;color:var(--color-base-content);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.auth-social-button:hover{background:color-mix(in oklab,var(--color-base-content) 5%,transparent);border-color:color-mix(in oklab,var(--color-base-content) 25%,transparent)}.auth-social-button:disabled{opacity:.5;cursor:not-allowed}.auth-social-error{font-size:.8rem;color:var(--color-error, #e53e3e);text-align:center;margin-top:.5rem}.auth-forgot{text-align:right;margin-top:-.5rem}.auth-forgot a{font-size:.8125rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);text-decoration:none;transition:color .15s ease}.auth-forgot a:hover{color:var(--color-accent)}.auth-mode-toggle{text-align:center;font-size:.8125rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent);margin-top:1rem}.auth-mode-toggle button{background:none;border:none;color:var(--color-accent);font-size:.8125rem;font-weight:500;cursor:pointer;padding:0;text-decoration:none;transition:color .15s ease}.auth-mode-toggle button:hover{color:color-mix(in oklab,var(--color-accent) 80%,transparent);text-decoration:underline}.auth-reset-sent{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--color-success, #38a169);text-align:center;margin-top:.75rem}.auth-verify-message{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--color-warning, #d69e2e);text-align:center;margin-top:1rem;margin-bottom:.75rem}.auth-resend-button{display:block;width:100%;padding:.625rem 1rem;border-radius:.5rem;border:1px solid color-mix(in oklab,var(--color-base-content) 15%,transparent);background:transparent;color:var(--color-accent);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.auth-resend-button:hover{background:color-mix(in oklab,var(--color-accent) 8%,transparent);border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}.auth-resend-button:disabled{opacity:.5;cursor:not-allowed}@layer base{:root{--journal-paper: var(--color-base-200);--journal-ink: var(--color-base-content);--journal-wash: var(--color-base-300);--journal-accent: var(--color-accent);--journal-accent-rgb: var(--color-accent-rgb);--font-heading: "Inter", "Helvetica Neue", sans-serif;--font-body: "Inter", "Helvetica Neue", sans-serif}[data-theme=TWOLNRdark]{--journal-paper: var(--color-base-100)}body{font-family:var(--font-body)}}@layer components{.journal-card{border-radius:1rem;border:1px solid color-mix(in oklab,var(--journal-ink) 12%,transparent);background:color-mix(in oklab,var(--journal-paper) 80%,#fff 20%);box-shadow:0 20px 40px -32px color-mix(in oklab,var(--journal-ink) 40%,transparent)}.stamp-chip{border-radius:999px;padding:.25rem .65rem;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;border:1px dashed color-mix(in oklab,var(--journal-accent) 40%,transparent);color:var(--journal-ink)}.ticket-stub-actions{border-top:1px dashed color-mix(in oklab,var(--journal-ink) 12%,transparent);padding-top:.75rem}.itinerary-ribbon{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}}
