@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500&family=JetBrains+Mono:wght@100;300;400&family=Noto+Serif+SC:wght@200;300;400;500&display=optional";.forest-lock-screen{--c-void: #0a0b0a;--c-earth: #1c1d1a;--c-leaf: #363d32;--c-bone: #e3decb;--c-ash: #7a7d76;--c-ash-dim: rgba(122, 125, 118, .4);--font-serif: "Cormorant Garamond", "Noto Serif SC", "Palatino Linotype", "Book Antiqua", "Songti SC", "SimSun", serif;--font-mono: "JetBrains Mono", "SFMono-Regular", "Cascadia Code", Consolas, monospace;--ease-slow: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--lock-screen-height: 100dvh;--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);--shell-pad-x: clamp(1rem, 3vw, 3rem);--shell-pad-top: clamp(1rem, 2.5vw, 2.5rem);--shell-pad-bottom: clamp(1.25rem, 3vw, 2.5rem);--mobile-bottom-dock-offset: 0px;--unlock-size: 80px;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;width:100%;min-height:100vh;min-height:100svh;height:100vh;height:100svh;height:var(--lock-screen-height, 100svh);overflow:hidden;overscroll-behavior:none;background:radial-gradient(circle at 50% 18%,rgba(54,61,50,.22),transparent 42%),radial-gradient(circle at 50% 100%,rgba(28,29,26,.9),transparent 48%),var(--c-void);color:var(--c-bone);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.forest-lock-screen,.forest-lock-screen *{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}.forest-lock-screen .webgl-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;opacity:.85;pointer-events:none}.forest-lock-screen .webgl-container canvas{display:block;width:100%;height:100%}.forest-lock-screen .ui-layer{position:relative;z-index:10;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;padding:max(var(--shell-pad-top),calc(var(--safe-top) + .65rem)) max(var(--shell-pad-x),calc(var(--safe-right) + 1rem)) max(var(--shell-pad-bottom),calc(var(--safe-bottom) + .85rem)) max(var(--shell-pad-x),calc(var(--safe-left) + 1rem));pointer-events:none}.forest-lock-screen .sys-bar{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--font-mono);font-size:.65rem;font-weight:300;letter-spacing:.1em;color:var(--c-ash);text-transform:uppercase}.forest-lock-screen .sys-left,.forest-lock-screen .sys-right{display:flex;gap:2vw}.forest-lock-screen .sys-item{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.forest-lock-screen .sys-icon{width:12px;height:12px;fill:currentColor}.forest-lock-screen .hero-container{position:relative;align-self:center;justify-self:center;display:flex;flex-direction:column;align-items:center;width:min(100%,38rem);padding-inline:clamp(.35rem,1vw,1rem);text-align:center;transform:translateY(clamp(-3rem,-5vh,-1.25rem))}.forest-lock-screen .time-wrapper{position:relative;display:flex;align-items:flex-start;max-width:100%}.forest-lock-screen .time-display{font-size:clamp(8rem,15vw,18rem);font-weight:300;line-height:.8;letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;text-shadow:0 10px 40px rgba(0,0,0,.5)}.forest-lock-screen .meridian{margin-top:1.5vw;margin-left:1vw;color:var(--c-ash);font-size:1.2rem;font-weight:400;letter-spacing:.3em;writing-mode:vertical-rl}.forest-lock-screen .date-composition{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1.5rem;margin-top:3vh;color:var(--c-bone);font-size:1.1rem;font-weight:300;letter-spacing:.1em;row-gap:.6rem}.forest-lock-screen .date-marker{padding:.2rem .5rem;border:1px solid var(--c-ash-dim);border-radius:2px;color:var(--c-ash);font-family:var(--font-mono);font-size:.7rem}.forest-lock-screen .divider{width:1px;height:1.2rem;background-color:var(--c-ash-dim)}.forest-lock-screen .sub-quote{margin-top:2vh;max-width:min(100%,30rem);padding-inline:.75rem;color:var(--c-ash);font-size:.9rem;font-style:italic;letter-spacing:.2em;opacity:.6;text-align:center}.forest-lock-screen .interaction-zone{align-self:end;justify-self:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-bottom:var(--mobile-bottom-dock-offset);padding:0;border:0;background:transparent;color:inherit;pointer-events:auto;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.forest-lock-screen .password-zone{align-self:end;justify-self:center;width:min(100%,26rem);margin-bottom:var(--mobile-bottom-dock-offset);pointer-events:auto}.forest-lock-screen .password-panel{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.05rem;border:1px solid rgba(122,125,118,.28);border-radius:18px;background:linear-gradient(180deg,#1c1d1a99,#0a0b0ac2),#0a0b0a6b;box-shadow:0 20px 60px #00000047;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:password-rise .45s var(--ease-out)}.forest-lock-screen .password-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--c-ash);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}.forest-lock-screen .password-field{display:flex;align-items:center;gap:.8rem;min-height:3.25rem;padding:.9rem 1rem;border:1px solid rgba(122,125,118,.22);border-radius:999px;background:#0a0b0a85;transition:border-color .3s ease,box-shadow .3s ease,opacity .3s ease}.forest-lock-screen .password-field:focus-within{border-color:#e3decb61;box-shadow:0 0 0 1px #e3decb14}.forest-lock-screen .password-field.has-error{border-color:#c68f879e;box-shadow:0 0 0 1px #c68f8714}.forest-lock-screen .password-field.is-disabled{opacity:.6}.forest-lock-screen .password-prefix{flex:none;color:var(--c-ash);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.forest-lock-screen .password-input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--c-bone);font-family:var(--font-mono);font-size:max(16px,.94rem);line-height:1.2;letter-spacing:.22em;caret-color:var(--c-bone);user-select:text;-webkit-user-select:text}.forest-lock-screen .password-input::placeholder{color:#7a7d76b8;letter-spacing:.08em}.forest-lock-screen .password-input:disabled{cursor:not-allowed}.forest-lock-screen .password-feedback{min-height:1rem;color:var(--c-ash);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em}.forest-lock-screen .password-feedback.has-error{color:#d0a59c}.forest-lock-screen .password-actions{display:flex;gap:.7rem;width:100%}.forest-lock-screen .password-submit{flex:1 1 0;align-self:auto;min-height:2.75rem;padding:.58rem 1rem;border:1px solid rgba(227,222,203,.24);border-radius:999px;background:#e3decb14;color:var(--c-bone);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .3s var(--ease-out),border-color .3s ease,background-color .3s ease,opacity .3s ease}.forest-lock-screen .password-submit:hover:not(:disabled){transform:translateY(-1px);border-color:#e3decb6b;background:#e3decb24}.forest-lock-screen .password-submit:disabled{opacity:.45;cursor:not-allowed}.forest-lock-screen .password-submit--secondary{flex:0 0 auto;min-width:6.4rem;border-color:#7a7d763d;background:#7a7d760a;color:var(--c-ash)}.forest-lock-screen .password-submit--secondary:hover:not(:disabled){border-color:#7a7d7661;background:#7a7d761a;color:var(--c-bone)}.forest-lock-screen .interaction-zone:focus{outline:none}.forest-lock-screen .unlock-btn-container{position:relative;display:flex;justify-content:center;align-items:center;width:var(--unlock-size);height:var(--unlock-size)}.forest-lock-screen .unlock-ring-bg{position:absolute;width:100%;height:100%;border:1px dashed var(--c-ash-dim);border-radius:50%;animation:rotate-slow 20s linear infinite}.forest-lock-screen .progress-canvas{position:absolute;width:100%;height:100%}.forest-lock-screen .unlock-core{width:12px;height:12px;border-radius:50%;background-color:var(--c-bone);box-shadow:0 0 20px #e3decb33;transition:transform .4s var(--ease-out),background-color .4s ease,box-shadow .4s ease}.forest-lock-screen .interaction-zone:hover .unlock-core{transform:scale(1.5);background-color:#fff;box-shadow:0 0 30px #fff6}.forest-lock-screen .status-text{color:var(--c-ash);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.3em;text-align:center;text-transform:uppercase;transition:color .3s ease,letter-spacing .3s ease}.forest-lock-screen .decal-left,.forest-lock-screen .decal-right{position:absolute;bottom:max(3vw,calc(var(--safe-bottom) + .5rem));color:var(--c-ash-dim);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;writing-mode:vertical-rl;transform:rotate(180deg)}.forest-lock-screen .decal-left{left:max(3vw,calc(var(--safe-left) + .5rem))}.forest-lock-screen .decal-right{right:max(3vw,calc(var(--safe-right) + .5rem))}.forest-lock-screen .flash-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:var(--c-bone);opacity:0;pointer-events:none;transition:opacity .8s ease}.forest-lock-screen.is-processing .unlock-core{transform:scale(.8);background-color:var(--c-leaf)}.forest-lock-screen.is-processing .status-text{color:var(--c-bone);letter-spacing:.4em}.forest-lock-screen.is-processing .unlock-ring-bg{border-color:#e3decb1a;animation-duration:2s}.forest-lock-screen.is-unlocked .ui-layer{opacity:0;transform:scale(1.05);transition:all 1.2s var(--ease-slow)}.forest-lock-screen.is-unlocked .webgl-container{opacity:0;transition:opacity 2s ease}.forest-lock-screen.is-unlocked .flash-overlay{animation:flash 1.5s ease-out forwards}@keyframes rotate-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes flash{0%{opacity:0}10%{opacity:.15}to{opacity:0}}@keyframes password-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 900px){.forest-lock-screen{--shell-pad-x: 1.4rem;--shell-pad-top: 1.3rem;--shell-pad-bottom: 1.4rem}.forest-lock-screen .sys-left,.forest-lock-screen .sys-right,.forest-lock-screen .date-composition{gap:1rem}.forest-lock-screen .password-zone{width:min(94vw,24rem)}}@media (max-width: 640px){.forest-lock-screen{--shell-pad-x: 1rem;--shell-pad-top: .95rem;--shell-pad-bottom: 1.15rem;--mobile-bottom-dock-offset: max(5.75rem, calc(var(--safe-bottom) + 3rem));--unlock-size: 88px}.forest-lock-screen .sys-bar{flex-direction:column;gap:.75rem}.forest-lock-screen .sys-left,.forest-lock-screen .sys-right{flex-wrap:wrap;gap:.65rem 1rem}.forest-lock-screen .hero-container{width:min(100%,32rem);transform:translateY(clamp(-1.75rem,-3vh,-.5rem))}.forest-lock-screen .time-display{font-size:clamp(4.8rem,24vw,7rem)}.forest-lock-screen .meridian{margin-top:.8rem;margin-left:.45rem;font-size:.9rem}.forest-lock-screen .date-composition{gap:.55rem .75rem;font-size:.88rem;letter-spacing:.04em}.forest-lock-screen .sub-quote{padding:0 1rem;font-size:.78rem;letter-spacing:.14em;text-align:center}.forest-lock-screen .decal-left,.forest-lock-screen .decal-right{display:none}.forest-lock-screen .password-panel{gap:.72rem;padding:.95rem}.forest-lock-screen .password-meta{flex-direction:column;align-items:flex-start;gap:.35rem}.forest-lock-screen .password-field{min-height:3.35rem;padding:.82rem .88rem}.forest-lock-screen .password-prefix{font-size:.64rem}.forest-lock-screen .password-input{font-size:1rem;letter-spacing:.14em}.forest-lock-screen .password-submit{min-height:2.9rem}}@media (max-width: 420px){.forest-lock-screen{--shell-pad-x: .85rem;--shell-pad-top: .8rem;--shell-pad-bottom: 1rem;--mobile-bottom-dock-offset: max(6rem, calc(var(--safe-bottom) + 5rem));--unlock-size: 86px}.forest-lock-screen .sys-bar{font-size:.58rem}.forest-lock-screen .time-display{font-size:clamp(4rem,22vw,5.6rem)}.forest-lock-screen .date-composition{gap:.45rem .65rem;font-size:.78rem}.forest-lock-screen .date-marker{font-size:.62rem}.forest-lock-screen .status-text{font-size:.68rem;letter-spacing:.18em}}.error-boundary{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);z-index:9999;padding:20px}.error-container{background:#fff;border-radius:16px;padding:48px 40px;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center;animation:errorSlideIn .4s ease-out}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:64px;margin-bottom:24px;animation:errorPulse 2s ease-in-out infinite}@keyframes errorPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.error-title{font-size:28px;font-weight:700;color:#2d3748;margin:0 0 16px}.error-message{font-size:16px;color:#718096;margin:0 0 32px;line-height:1.6}.error-details{text-align:left;margin:24px 0;padding:16px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.error-details summary{cursor:pointer;font-weight:600;color:#4a5568;padding:8px;-webkit-user-select:none;user-select:none;outline:none}.error-details summary:hover{color:#2d3748}.error-stack{margin:16px 0 0;padding:16px;background:#2d3748;color:#f7fafc;border-radius:4px;overflow-x:auto;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.error-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.error-actions .btn{padding:12px 32px;font-size:16px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease;outline:none}.error-actions .btn.primary{background:#667eea;color:#fff}.error-actions .btn.primary:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 8px 16px #667eea66}.error-actions .btn.ghost{background:transparent;color:#4a5568;border:2px solid #e2e8f0}.error-actions .btn.ghost:hover{background:#f7fafc;border-color:#cbd5e0;transform:translateY(-2px)}@media (max-width: 768px){.error-container{padding:32px 24px}.error-title{font-size:24px}.error-message{font-size:14px}.error-actions{flex-direction:column}.error-actions .btn{width:100%}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--app-safe-top: env(safe-area-inset-top, 0px);--app-safe-right: env(safe-area-inset-right, 0px);--app-safe-bottom: env(safe-area-inset-bottom, 0px);--app-safe-left: env(safe-area-inset-left, 0px);--app-viewport-height: 100vh;color-scheme:dark light}@supports (height: 100svh){:root{--app-viewport-height: 100svh}}@supports (height: 100dvh){:root{--app-viewport-height: 100dvh}}a{text-decoration:inherit}a:hover{opacity:.9}html,body,#root{height:100%;width:100%}body{margin:0;min-width:320px;min-height:100vh;min-height:100svh;min-height:100dvh;display:block;overflow:hidden;background:#0a0b0a;overscroll-behavior:none;-webkit-text-size-adjust:100%}#root{isolation:isolate}h1{font-size:1em;line-height:1.1;margin:0}button{font-family:inherit;cursor:pointer}button:focus,button:focus-visible{outline:2px auto -webkit-focus-ring-color}
