*{box-sizing:border-box;margin:0}:root{color-scheme:dark;--ink: #071427;--ink-2: #061b33;--night: #061b33;--night-2: #0a2d5a;--paper: #f6fbff;--paper-2: #fdfeff;--muted: #9db4c6;--muted-warm: #6e88a3;--ember: #0f58b8;--ember-dark: #0b3e85;--amber: #2aa7c9;--cream: #ddf7f5;--teal: #2fb8c5;--ok: #5dbf90;--danger: #c95b66;--line: rgba(221, 247, 245, .16);--shadow: 0 22px 70px rgba(2, 10, 24, .35);--radius-sm: 12px;--radius: 18px;--radius-lg: 28px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}html,body,#root{width:100%;min-height:100%}html{background:var(--night)}body{min-width:280px;min-height:100svh;overflow-x:hidden;background:var(--night);color:var(--paper);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{border:0;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}input,select,textarea{min-width:0}input[type=checkbox],input[type=radio],input[type=file]{width:auto}img,svg{display:block;max-width:100%}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(42,167,201,.78);outline-offset:3px}.eyebrow,.section-kicker{color:var(--ember);font-size:.68rem;font-weight:800;letter-spacing:.18em;line-height:1.3}.sub{color:var(--muted);font-size:.82rem;line-height:1.55;margin-bottom:14px}.cnt{color:var(--muted);font-size:.76rem}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.err{min-height:1.25rem;color:var(--danger);font-size:.78rem;line-height:1.4}.notice{border:1px solid rgba(42,167,201,.24);border-radius:var(--radius-sm);background:#2aa7c914;padding:12px 14px;color:var(--cream);font-size:.82rem;line-height:1.5}.notice.error{border-color:#ef6e5f4d;background:#ef6e5f1a;color:#ffd1ca}.loading-card,.empty-state{padding:24px;border:1px dashed rgba(255,255,255,.16);border-radius:var(--radius);color:var(--muted);text-align:center;font-size:.82rem}.brand-lockup{display:flex;align-items:center;gap:clamp(9px,2.5vw,14px);min-width:0;color:var(--ink)}.brand-lockup>img{flex:0 0 auto;width:clamp(44px,12vw,68px);height:clamp(44px,12vw,68px);object-fit:contain}.brand-lockup>div{display:grid;min-width:0}.brand-lockup span{color:var(--ember-dark);font-size:clamp(.55rem,2.1vw,.67rem);font-weight:800;letter-spacing:.08em;white-space:nowrap}.brand-lockup strong{font-family:"Noto Serif TC",Songti TC,PMingLiU,serif;font-size:clamp(1.28rem,5vw,1.8rem);font-weight:900;letter-spacing:.15em;line-height:1.12;white-space:nowrap}.brand-lockup small{color:var(--muted-warm);font-size:.5rem;font-weight:700;letter-spacing:.24em}.brand-lockup.compact>img{width:clamp(38px,9vw,48px);height:clamp(38px,9vw,48px)}.brand-lockup.compact strong{font-size:clamp(1.02rem,4vw,1.3rem)}.brand-lockup.inverse{color:var(--paper-2)}.brand-lockup.inverse span{color:var(--amber)}.brand-lockup.inverse small{color:#ddf7f599}.field-label{display:flex;align-items:center;justify-content:space-between;margin:2px 2px 7px;color:inherit;font-size:.78rem;font-weight:750}.field-label span{color:var(--muted-warm);font-size:.67rem;font-weight:600}.input-shell{display:flex;align-items:center;gap:10px;width:100%;min-width:0;padding:0 14px;border:1px solid rgba(53,31,20,.2);border-radius:14px;background:#ffffffa8;color:var(--muted-warm);transition:border-color .2s,box-shadow .2s,background .2s}.input-shell:focus-within{border-color:var(--ember);background:#fff;box-shadow:0 0 0 4px #0f58b81a}.input-shell.invalid{border-color:var(--danger)}.input-shell input{width:100%;height:52px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:max(16px,.95rem)}.input-shell input::placeholder{color:#ad9a8d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;padding:11px 16px;border:1px solid transparent;border-radius:14px;background:linear-gradient(135deg,var(--ember),#167bc3);box-shadow:0 10px 24px #bb3d1138;color:#fff8e8;font-weight:800;transition:transform .15s,filter .15s}.btn:not(:disabled):active{transform:translateY(1px) scale(.99)}.btn.ghost{border-color:#0f58b873;background:transparent;box-shadow:none;color:var(--ember)}.text-button{width:100%;padding:7px;background:transparent;color:var(--ember-dark);font-size:.76rem;font-weight:700}.login-page{position:relative;isolation:isolate;display:grid;grid-template-rows:auto minmax(42px,1fr) auto;width:100%;min-height:100svh;min-height:100dvh;overflow:hidden;padding:max(16px,env(safe-area-inset-top)) clamp(14px,4.5vw,28px) 0;background:#080604}.login-page:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0504034d,#0504030a 38%,#05040333 68%,#050403d1),radial-gradient(circle at 50% 42%,transparent 0,rgba(0,0,0,.2) 70%)}.login-art{position:absolute;inset:0;z-index:-2;background:#061b33 url(/app/assets/brand/login-memory-sea-blue-480.webp) center 52% / cover no-repeat}@media(min-width:480px),(min-resolution:2dppx){.login-art{background-image:url(/app/assets/brand/login-memory-sea-blue-768.webp)}}.login-brand{z-index:1;align-self:start;max-width:min(100%,330px)}.login-story{z-index:1;align-self:end;width:min(100%,420px);margin:22px 2px clamp(16px,4svh,42px);text-shadow:0 2px 18px #000}.login-wordmark{display:block;width:min(52%,220px);margin-bottom:10px;filter:drop-shadow(0 2px 14px rgba(0,0,0,.55))}.login-story span{color:var(--amber);font-size:.62rem;font-weight:800;letter-spacing:.24em}.login-story p{max-width:18em;margin-top:6px;font-family:"Noto Serif TC",Songti TC,serif;font-size:clamp(1.05rem,4.8vw,1.55rem);font-weight:800;line-height:1.45}.login-panel{z-index:2;align-self:end;width:min(100%,520px);max-height:calc(100svh - 154px);max-height:calc(100dvh - 154px);margin:0 auto;overflow-y:auto;overscroll-behavior:contain;padding:13px clamp(18px,5.3vw,28px) max(18px,env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.46);border-bottom:0;border-radius:28px 28px 0 0;background:#f6fbfff2;box-shadow:0 -14px 55px #0f070252;color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-handle{width:42px;height:4px;margin:0 auto 15px;border-radius:9px;background:#3e221326}.login-panel-head{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;margin-bottom:17px}.login-step{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#21140d;color:var(--amber)}.login-panel h1{margin:3px 0 5px;font-family:"Noto Serif TC",serif;font-size:clamp(1.25rem,5.8vw,1.65rem);line-height:1.25}.login-panel-head p{color:#715e51;font-size:.75rem;line-height:1.55}.login-submit{justify-content:space-between;margin-top:1px}.privacy-note{margin-top:6px;color:#8e7a6e;font-size:.62rem;line-height:1.45;text-align:center}.page{min-height:100svh}.app-page{width:min(100%,600px);margin:0 auto;padding:max(24px,env(safe-area-inset-top)) clamp(16px,4.5vw,28px) calc(104px + env(safe-area-inset-bottom));background:radial-gradient(circle at 105% 4%,rgba(15,88,184,.13),transparent 28%),radial-gradient(circle at -12% 72%,rgba(74,166,154,.1),transparent 34%),var(--night)}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.app-header>div:first-child{min-width:0}.app-header h1{margin-top:5px;font-family:"Noto Serif TC",Songti TC,serif;font-size:clamp(1.65rem,7vw,2.15rem);letter-spacing:.05em;line-height:1.25}.app-header p{max-width:31em;margin-top:7px;color:var(--muted);font-size:.78rem;line-height:1.55}.archive-count{flex:0 0 auto;display:flex;align-items:baseline;padding-top:18px;color:var(--amber)}.archive-count strong{font-size:1.55rem}.archive-count span{color:var(--muted);font-size:.76rem}.section-kicker{margin:22px 2px 9px;color:#2aa7c9b3}.progress-card{padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#ffffff12,#ffffff06);box-shadow:0 14px 36px #0000001f}.progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.progress-copy span{color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.15em}.progress-copy strong{color:var(--amber);font-size:1.05rem}.progress-card p{color:var(--muted);font-size:.7rem;line-height:1.5}.gridbar,.bar{height:6px;overflow:hidden;border-radius:99px;background:#ffffff17}.gridbar{margin:10px 0 8px}.gridbar i,.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ember),var(--amber))}.tabs{display:flex;gap:7px;min-width:0}.tabs button{min-height:37px;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:99px;background:#ffffff0b;color:var(--muted);font-size:.72rem;font-weight:700;white-space:nowrap}.tabs button.on{border-color:var(--amber);background:#2aa7c921;color:var(--cream)}.archive-tabs{overflow-x:auto;padding:1px 1px 4px;scrollbar-width:none}.archive-tabs::-webkit-scrollbar{display:none}.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:12px}.codex-card{position:relative;min-width:0;min-height:205px;overflow:hidden;padding:16px 12px 13px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:radial-gradient(circle at 50% 28%,rgba(42,167,201,.13),transparent 44%),linear-gradient(155deg,#173244,#0b2231);color:var(--paper);text-align:left}.codex-card:after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(transparent,#030c1273);pointer-events:none}.codex-card.locked{background:linear-gradient(150deg,#152734,#0c1c27);color:#758791;filter:saturate(.55)}.codex-card:disabled{opacity:.78}.card-number{position:absolute;z-index:2;top:11px;right:12px;color:#ffffff59;font-size:.6rem;letter-spacing:.16em}.species-art{display:grid;place-items:center;width:100%;min-width:0;height:112px}.species-art img{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(0,0,0,.32))}.species-fallback{font-size:clamp(2.4rem,13vw,4rem);filter:grayscale(.1)}.codex-card.locked .species-art{opacity:.15;filter:blur(4px)}.codex-card.locked .species-fallback{visibility:hidden}.zone-chip,.card-pop .zone{position:relative;z-index:2;display:inline-flex;width:max-content;max-width:100%;margin:5px 0 7px;padding:4px 7px;border:1px solid rgba(42,167,201,.22);border-radius:99px;background:#2aa7c914;color:var(--amber);font-size:.56rem;font-weight:750}.codex-card strong,.codex-card .card-state{position:relative;z-index:2;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.codex-card strong{font-size:.86rem}.codex-card .card-state{margin-top:4px;color:var(--muted);font-size:.58rem}.back-button{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;padding:8px 0;background:transparent;color:var(--muted);font-size:.76rem;font-weight:700}.detail-record{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:#ffffff09}.detail-hero{position:relative;display:grid;place-items:center;min-height:clamp(270px,52svh,410px);overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(42,167,201,.26),transparent 30%),linear-gradient(160deg,#153945,#081824 68%)}.detail-hero:before,.detail-hero:after{content:"";position:absolute;border:1px solid rgba(42,167,201,.14);border-radius:50%}.detail-hero:before{width:74%;aspect-ratio:1}.detail-hero:after{width:50%;aspect-ratio:1}.detail-orbit{position:absolute;width:94%;height:46%;border-top:1px solid rgba(255,255,255,.1);border-radius:50%;transform:rotate(-12deg)}.detail-hero .species-art{position:relative;z-index:2;width:min(76%,330px);height:min(52vw,260px)}.uncollected-card{display:grid;justify-items:center;gap:10px;margin-top:14px;padding:clamp(24px,8vw,40px) 20px;border:1px dashed rgba(255,255,255,.22);border-radius:20px;text-align:center}.uncollected-card .uncollected-mark{font-size:3rem;filter:grayscale(.9) opacity(.5)}.uncollected-card h2{font-family:"Noto Serif TC",serif;font-size:1.25rem}.uncollected-card p{max-width:24em;color:var(--muted);font-size:.74rem;line-height:1.6}.uncollected-card .btn{width:auto;margin-top:6px;padding:.55em 1.3em}.specimen-code{position:absolute;z-index:2;left:18px;bottom:15px;max-width:calc(100% - 36px);overflow:hidden;color:#ffffff73;font-size:.55rem;letter-spacing:.12em;text-overflow:ellipsis;white-space:nowrap}.detail-content{padding:clamp(20px,5vw,30px)}.detail-content h1{margin:7px 0;font-family:"Noto Serif TC",serif;font-size:clamp(1.75rem,8vw,2.35rem)}.detail-rule{width:52px;height:2px;margin:14px 0 17px;background:var(--ember)}.detail-blurb{color:#c8d2d1;font-family:"Noto Serif TC",serif;font-size:.86rem;line-height:1.9}.capture-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.capture-meta>div{min-width:0;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff08}.capture-meta dt{color:var(--amber);font-size:.54rem;font-weight:800;letter-spacing:.13em}.capture-meta dd{margin-top:5px;overflow-wrap:anywhere;color:var(--paper);font-size:.72rem;line-height:1.45}.reward-banner{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;padding:17px;border:1px solid rgba(42,167,201,.24);border-radius:var(--radius);background:linear-gradient(140deg,#0f58b824,#2aa7c90d)}.reward-icon,.sheet-icon,.staff-login-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ember);color:var(--cream)}.reward-banner span:not(.reward-icon){color:var(--amber);font-size:.55rem;font-weight:800;letter-spacing:.15em}.reward-banner strong{display:block;margin:4px 0;font-family:"Noto Serif TC",serif;font-size:.98rem}.reward-banner p{color:var(--muted);font-size:.67rem;line-height:1.5}.mission-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:13px 0 18px}.mission-summary>div{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:#ffffff09}.mission-summary span{display:block;color:var(--muted);font-size:.6rem}.mission-summary strong{display:block;margin-top:4px;color:var(--cream);font-size:.85rem}.mission-route{position:relative;display:grid;gap:10px}.mission-route:before{content:"";position:absolute;top:25px;bottom:25px;left:20px;width:1px;background:#2aa7c92e}.mission-step{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px}.mission-node{z-index:1;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:var(--night);color:var(--muted);font-size:.64rem;font-weight:800}.mission-step.done .mission-node{border-color:var(--amber);background:var(--amber);color:var(--ink)}.mission-copy{min-width:0;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:#ffffff09}.mission-step.reward .mission-copy{border-color:#2aa7c938;background:#2aa7c90f}.mission-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mission-title-row>div{min-width:0}.mission-title-row span{color:var(--amber);font-size:.52rem;font-weight:800;letter-spacing:.12em}.mission-title-row h2{margin:3px 0 9px;font-size:.82rem;line-height:1.4}.mission-title-row>strong{flex:none;color:var(--muted);font-size:.68rem}.mission-copy p{margin-top:7px;color:var(--muted);font-size:.6rem}.app-nav{position:fixed;z-index:7;left:50%;bottom:0;width:min(100%,600px);transform:translate(-50%);border-top:1px solid rgba(255,255,255,.09);background:#071621eb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-nav-inner{display:grid;grid-template-columns:repeat(3,1fr);padding:7px 10px max(7px,env(safe-area-inset-bottom))}.app-nav a{display:grid;justify-items:center;gap:2px;min-width:0;padding:3px 0;color:#738a94;font-size:.62rem;font-weight:700;text-decoration:none}.nav-icon{display:grid;place-items:center;width:34px;height:30px;border-radius:14px}.app-nav a.on{color:var(--amber)}.app-nav a.on .nav-icon{background:#2aa7c91f}.scan{position:fixed;inset:0;width:min(100%,600px);margin:auto;overflow:hidden;background:#020304;color:#fff}.scan>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scan-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,5,8,.7),transparent 25%,transparent 60%,rgba(1,5,8,.86)),radial-gradient(circle,transparent 35%,rgba(0,0,0,.26));pointer-events:none}.scan-topbar{position:absolute;z-index:4;top:max(10px,env(safe-area-inset-top));left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.scan-brand{display:flex;align-items:center;gap:8px;min-width:0}.scan-brand img{width:clamp(34px,10vw,42px);height:clamp(34px,10vw,42px);object-fit:contain}.scan-brand span{display:grid;min-width:0;text-shadow:0 2px 8px #000}.scan-brand small{font-family:"Noto Serif TC",serif;font-size:.72rem;font-weight:900;letter-spacing:.12em}.scan-brand strong{color:#ffffff94;font-size:.45rem;letter-spacing:.14em}.corner{display:flex;gap:7px;flex:none}.corner button{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#040c117a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scan .status{position:absolute;z-index:3;top:calc(max(10px,env(safe-area-inset-top)) + 58px);left:50%;display:flex;align-items:center;gap:7px;max-width:calc(100% - 32px);transform:translate(-50%);padding:7px 11px;border:1px solid rgba(255,255,255,.14);border-radius:99px;background:#020a0f85;color:#ffffffdb;font-size:.66rem;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px #5dbf9024;animation:pulse 1.8s ease-in-out infinite}.offline-banner{position:absolute;z-index:4;top:calc(max(10px,env(safe-area-inset-top)) + 96px);left:50%;width:max-content;max-width:calc(100% - 28px);transform:translate(-50%);padding:8px 12px;border-radius:10px;background:#4d1811e0;color:#ffd1ca;font-size:.62rem;line-height:1.4;text-align:center}.scan .hud{position:fixed;z-index:5;left:12px;top:calc(max(10px,env(safe-area-inset-top)) + 60px);padding:3px 9px;border-radius:8px;background:#0000006b;color:#9db4c6;font:11px/1.6 ui-monospace,Consolas,monospace}#frame{position:absolute;z-index:2;left:50%;top:48%;width:clamp(190px,min(64vw,54svh),360px);height:clamp(190px,min(64vw,54svh),360px);transform:translate(-50%,-50%);pointer-events:none;transition:box-shadow .2s,filter .2s}#frame.hot{filter:drop-shadow(0 0 12px rgba(42,167,201,.62))}#frame:before,#frame:after,#frame i:before,#frame i:after{content:"";position:absolute;width:34px;height:34px;border:2px solid rgba(255,255,255,.94)}#frame:before{left:0;top:0;border-right:0;border-bottom:0;border-radius:8px 0 0}#frame:after{right:0;top:0;border-left:0;border-bottom:0;border-radius:0 8px 0 0}#frame i:before{left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 8px}#frame i:after{right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 8px}#frame>span{position:absolute;left:50%;bottom:-31px;transform:translate(-50%);width:max-content;max-width:90vw;color:#ffffffb8;font-size:.62rem;letter-spacing:.08em;text-shadow:0 2px 7px #000}#ringWrap{position:absolute;z-index:3;left:50%;top:48%;width:clamp(122px,min(38vw,34svh),220px);transform:translate(-50%,-50%);pointer-events:none;display:none}.startCover{position:absolute;z-index:9;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;overflow:auto;padding:max(24px,env(safe-area-inset-top)) 24px max(90px,calc(70px + env(safe-area-inset-bottom)));background:linear-gradient(#040a1494,#030912db),url(/app/assets/brand/login-memory-sea-blue-768.webp) center 55% / cover;text-align:center}.startCover>img{width:clamp(72px,22vw,108px);height:clamp(72px,22vw,108px);object-fit:contain}.startCover>strong{margin:9px 0 5px;font-family:"Noto Serif TC",serif;font-size:clamp(1.35rem,6vw,1.9rem)}.startCover>small{color:#ffffff9e;font-size:.7rem}.startCover>i{display:flex;align-items:center;justify-content:space-between;width:min(100%,330px);margin-top:24px;padding:13px 16px;border-radius:14px;background:var(--ember);color:#fff;font-size:.82rem;font-style:normal;font-weight:800}.startCover .err{width:min(100%,360px);margin-top:10px;padding:8px;border-radius:8px;background:#320a06c7}.overlay{position:fixed;z-index:8;inset:0;background:#030709a1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sheet{position:fixed;z-index:9;left:50%;top:50%;width:min(calc(100% - 28px),420px);max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);overflow:auto;transform:translate(-50%,-50%);padding:clamp(20px,5vw,28px);border:1px solid rgba(255,255,255,.12);border-radius:24px;background:linear-gradient(150deg,#173446,#0b202d);box-shadow:var(--shadow);text-align:center}.sheet h2{margin:7px 0 8px;font-family:"Noto Serif TC",serif;font-size:1.35rem}.sheet .dim{color:var(--muted);font-size:.76rem;line-height:1.55}.sheet .btn{margin-top:12px}.sheet .btn+.btn{margin-top:8px}.sheet-icon{margin:0 auto 10px}.sheet-icon.locked{background:#3b4650;color:#9aaab0}.sheet-close{margin-top:16px!important}.serial{margin:10px 0;color:var(--amber);font-family:ui-monospace,Consolas,monospace;font-size:.8rem;letter-spacing:.08em;overflow-wrap:anywhere}.qr{display:inline-block;margin-top:13px;padding:10px;border-radius:13px;background:#fff}.qr img{width:min(45vw,190px);height:auto}.identity-email{margin:10px 0 4px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:#ffffff09;color:var(--cream);font-size:.82rem;overflow-wrap:anywhere}.card-pop{overflow:hidden;padding:0 20px 20px}.card-pop .zone{margin:18px auto 7px}.capture-art{height:clamp(150px,42vw,220px);margin:3px -20px 10px;background:radial-gradient(circle,rgba(42,167,201,.24),transparent 56%)}.capture-art .species-art{height:100%}.capture-kicker{color:var(--amber);font-size:.58rem;font-weight:800;letter-spacing:.18em}.card-pop h2{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:7px}.owned{padding:3px 7px;border-radius:99px;background:#4aa69a26;color:#85d0c5;font-family:inherit;font-size:.55rem}.card-pop .blurb{color:var(--muted);font-size:.72rem;line-height:1.6}.capture-progress{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:.68rem}.capture-progress strong{color:var(--amber)}.mission{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:9px;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:#ffffff09}.mission .bar{margin-top:6px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gcard{min-width:0;padding:12px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#ffffff09}select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]){width:100%;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff0f;color:inherit;padding:10px 11px}select option{color:#111}.admin-login-page,.staff-login-page{display:grid;place-items:center;min-height:100svh;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));background:radial-gradient(circle at 80% 10%,rgba(15,88,184,.2),transparent 34%),radial-gradient(circle at 15% 90%,rgba(74,166,154,.13),transparent 34%),#081722}.admin-login-card,.staff-login-card{width:min(100%,430px);padding:clamp(22px,6vw,34px);border:1px solid rgba(255,255,255,.12);border-radius:26px;background:#f6fbfff5;box-shadow:var(--shadow);color:var(--ink)}.admin-login-card .brand-lockup,.staff-login-card .brand-lockup{margin-bottom:28px}.admin-login-copy h1,.staff-login-card h1{margin:5px 0 7px;font-family:"Noto Serif TC",serif;font-size:clamp(1.55rem,7vw,2rem)}.admin-login-copy p,.staff-login-card>p{margin-bottom:22px;color:#786356;font-size:.76rem;line-height:1.55}.admin-login-card .btn,.staff-login-card .btn{justify-content:space-between}.admin-login-note{margin-top:12px;color:#917d70;font-size:.6rem;text-align:center}.staff-login-icon{margin-bottom:14px}.admin-shell{display:grid;grid-template-columns:244px minmax(0,1fr);min-height:100svh;background:#eef4f9;color:#16324f}.admin-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100svh;min-width:0;padding:24px 16px 18px;overflow:hidden;background:#0a1b27;color:var(--paper)}.admin-sidebar .brand-lockup{padding:0 7px 22px;color:var(--paper)}.admin-sidebar .brand-lockup span{color:var(--amber)}.sidebar-label{padding:9px 11px;color:#617983;font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.admin-sidebar nav{display:grid;gap:4px;min-height:0;overflow-y:auto}.admin-sidebar nav button{display:grid;grid-template-columns:22px minmax(0,1fr) 12px;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:12px;background:transparent;color:#91a4ac;font-size:.77rem;text-align:left}.admin-sidebar nav button i{color:#49616c;font-size:1rem;font-style:normal;text-align:right}.admin-sidebar nav button.on{background:linear-gradient(100deg,#0f58b833,#0f58b80d);color:var(--cream)}.admin-sidebar nav button.on .icon,.admin-sidebar nav button.on i{color:var(--amber)}.sidebar-footer{display:grid;gap:10px;margin-top:auto;padding:15px 8px 0;border-top:1px solid rgba(255,255,255,.08);color:#6e858e;font-size:.59rem}.sidebar-footer>div{display:flex;align-items:center;gap:7px}.sidebar-footer button{display:flex;align-items:center;gap:7px;padding:5px 0;background:transparent;color:#81959d;font-size:.68rem}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px #5dbf901f}.admin-main{min-width:0}.admin-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:clamp(24px,4vw,42px) clamp(20px,4vw,48px) 20px;border-bottom:1px solid rgba(10,45,90,.09);background:#f9fcff9e}.admin-topbar h1{margin:4px 0;font-family:"Noto Serif TC",serif;font-size:clamp(1.6rem,3.2vw,2.2rem)}.admin-topbar p{max-width:42em;color:#64809b;font-size:.76rem;line-height:1.5}.system-badge{display:flex;align-items:center;gap:8px;flex:none;margin-top:8px;padding:8px 11px;border:1px solid rgba(57,106,76,.15);border-radius:99px;background:#5dbf9014;color:#3d7458;font-size:.66rem;font-weight:700}.admin-workspace{min-width:0;padding:clamp(18px,3.6vw,42px) clamp(16px,4vw,48px) 48px}.admin-workspace .sub{color:#64809b}.admin-workspace .mission,.admin-workspace .gcard{border-color:#0a2d5a1a;background:#f9fcffc2;color:#1c3a5c;box-shadow:0 5px 14px #09192e0d}.admin-workspace input:not([type=checkbox]):not([type=radio]):not([type=file]),.admin-workspace select,.admin-workspace textarea{border-color:#0a2d5a29;background:#fdfeff;color:#1c3a5c}.admin-workspace .btn{min-height:38px;border-radius:10px;padding:7px 12px;font-size:.72rem}.admin-workspace .btn.ghost{border-color:#0b3e8559;color:var(--ember-dark)}.admin-workspace .tabs{margin-bottom:13px;overflow-x:auto}.admin-workspace .tabs button{border-color:#0a2d5a1f;background:#ffffffa3;color:#64809b}.admin-workspace .tabs button.on{border-color:var(--ember);background:#0f58b814;color:var(--ember-dark)}.admin-thumb{flex:0 0 68px;width:68px;height:68px;border-radius:12px;background:#0e2734}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:28px}.metric-card{min-width:0;padding:16px;border:1px solid rgba(10,45,90,.1);border-radius:15px;background:#f9fcffd6}.metric-card span,.metric-card small{display:block;color:#64809b;font-size:.57rem}.metric-card strong{display:block;margin:7px 0 4px;color:#123a63;font-size:1.55rem;line-height:1}.metric-card small{font-weight:800;letter-spacing:.1em}.metric-card.alert strong{color:var(--danger)}.ops-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:16px 1px 10px}.ops-section-heading>div>span{color:var(--ember-dark);font-size:.54rem;font-weight:800;letter-spacing:.14em}.ops-section-heading h2{margin-top:2px;font-family:"Noto Serif TC",serif;font-size:1rem}.ops-section-heading>small{color:#64809b;font-size:.6rem}.device-list{overflow:hidden;border:1px solid rgba(10,45,90,.1);border-radius:14px;background:#f9fcffbf}.device-row{display:grid;grid-template-columns:70px minmax(140px,1.7fr) minmax(80px,1fr) 70px minmax(100px,1fr) 76px;gap:10px;align-items:center;min-width:700px;padding:11px 13px;border-bottom:1px solid rgba(10,45,90,.07);color:#3e5a76;font-size:.66rem}.device-list{overflow-x:auto}.device-row:last-child{border-bottom:0}.device-row.table-head{background:#0a2d5a0d;color:#6e88a3;font-size:.56rem;font-weight:800;letter-spacing:.04em}.device-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-row>span:nth-child(2){display:grid;gap:2px}.device-row small{overflow:hidden;color:#64809b;text-overflow:ellipsis}.status-online,.status-offline{display:flex!important;align-items:center;gap:6px}.status-online i,.status-offline i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--ok)}.status-offline i{background:#9bb0bf}.event-heading{align-items:center;margin-top:30px}.ops-filters{display:flex;gap:7px}.ops-filters select{width:auto;min-width:110px;padding:7px 9px;font-size:.65rem}.event-console{max-height:360px;overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#091923;color:#aec0c5;font:.64rem/1.6 ui-monospace,Consolas,monospace}.event-console>div:not(.empty-state){display:grid;grid-template-columns:66px 44px minmax(90px,1fr) 110px minmax(180px,2fr);gap:9px;min-width:620px;padding:8px 11px;border-bottom:1px solid rgba(255,255,255,.055)}.event-console time{color:#55717c}.event-console b{color:var(--amber)}.event-console strong{color:#82c8bd;font-weight:600}.event-console code{overflow:hidden;background:none;color:#7f99a2;text-overflow:ellipsis;white-space:nowrap}.event-console .event-error strong{color:#ff8d7e}.staff-page{width:min(100%,760px);min-height:100svh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) clamp(14px,4vw,28px) max(24px,env(safe-area-inset-bottom));background:var(--night)}.staff-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.08)}.staff-header>div:last-child{text-align:right}.staff-header h1{margin:3px 0;font-family:"Noto Serif TC",serif;font-size:1.55rem}.staff-header p{color:var(--muted);font-size:.7rem}.staff-tabs{margin:18px 0 12px}.staff-workspace{padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:20px;background:#ffffff09}.staff-camera-start{display:grid;justify-items:center;gap:6px;width:100%;padding:30px 20px;border:1px dashed rgba(42,167,201,.3);border-radius:16px;background:#2aa7c90a}.staff-camera-start>span{display:grid;place-items:center;width:56px;height:56px;margin-bottom:5px;border-radius:50%;background:var(--ember)}.staff-camera-start strong{font-size:.9rem}.staff-camera-start small{color:var(--muted);font-size:.67rem}.staff-camera{position:relative;display:none;width:100%;overflow:hidden;aspect-ratio:4/3;border-radius:16px;background:#000}.staff-camera.running{display:block}.staff-camera video{width:100%;height:100%;object-fit:cover}.staff-reticle{position:absolute;inset:18%;border:2px solid rgba(255,255,255,.75);border-radius:14px;box-shadow:0 0 0 999px #00000029}.scan-instruction{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:var(--muted);font-size:.7rem}.redeem-result{min-height:1.4rem;margin-top:8px;font-size:.72rem;text-align:center}.redeem-result.success{color:var(--ok)}.redeem-result.error{color:var(--danger)}.redeem-sheet .notice{margin-top:10px}@keyframes pulse{50%{opacity:.48;transform:scale(.88)}}@media(max-width:359px){.login-page{padding-inline:10px}.login-panel{padding-inline:15px;border-radius:22px 22px 0 0}.login-panel-head{grid-template-columns:36px minmax(0,1fr);gap:9px}.login-step{width:36px;height:36px}.login-story p{font-size:1rem}.codex-grid{gap:8px}.codex-card{min-height:190px;padding-inline:9px}.capture-meta{grid-template-columns:1fr}.tabs button{padding-inline:10px}.staff-workspace{padding:11px}}@media(max-height:720px){.login-page{grid-template-rows:auto minmax(8px,1fr) auto}.login-story{display:none}.login-brand .brand-lockup>img{width:42px;height:42px}.login-panel{max-height:calc(100svh - 82px);max-height:calc(100dvh - 82px);padding-top:9px}.login-panel-head{margin-bottom:11px}.login-handle{margin-bottom:10px}.privacy-note{display:none}#frame{top:47%;width:clamp(160px,min(54vw,47svh),300px);height:clamp(160px,min(54vw,47svh),300px)}#ringWrap{top:47%}.startCover{justify-content:flex-start;padding-top:max(40px,calc(env(safe-area-inset-top) + 18px))}.startCover>img{width:66px;height:66px}.startCover>i{margin-top:15px}}@media(orientation:landscape)and (max-height:560px){.login-page{grid-template-columns:minmax(180px,1fr) minmax(300px,440px);grid-template-rows:1fr;gap:18px;padding-bottom:0}.login-brand{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left))}.login-panel{grid-column:2;align-self:stretch;max-height:100svh;max-height:100dvh;border-radius:24px 24px 0 0}.login-art{background-position:center 48%}.scan-topbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}.app-nav{width:min(100%,720px)}}@media(min-width:480px){.codex-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.codex-card{min-height:210px}.species-fallback{font-size:3.4rem}}@media(min-width:760px){.login-page{padding-inline:max(28px,calc((100vw - 1180px)/2))}.login-panel{margin-right:0;width:460px;border-radius:30px 30px 0 0}.login-story{position:absolute;left:max(28px,calc((100vw - 1180px)/2));bottom:52px;width:calc(100% - 540px);margin:0}.login-story p{font-size:clamp(1.7rem,3vw,2.55rem)}.app-nav{bottom:10px;border:1px solid rgba(255,255,255,.1);border-radius:20px;overflow:hidden}}@media(max-width:980px){.admin-shell{display:block}.admin-sidebar{position:sticky;z-index:12;top:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;width:100%;height:auto;padding:max(10px,env(safe-area-inset-top)) 12px 10px}.admin-sidebar .brand-lockup{padding:0}.admin-sidebar .brand-lockup span{display:none}.admin-sidebar .brand-lockup strong{font-size:.92rem}.admin-sidebar nav{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none}.admin-sidebar nav::-webkit-scrollbar{display:none}.admin-sidebar nav button{display:flex;grid-template-columns:none;width:auto;flex:0 0 auto;padding:9px 11px}.admin-sidebar nav button i{display:none}.sidebar-label,.sidebar-footer{display:none}.admin-topbar{padding-top:24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.admin-sidebar{grid-template-columns:1fr;gap:8px}.admin-sidebar .brand-lockup{display:none}.admin-sidebar nav button{padding:8px 10px;font-size:.69rem}.admin-topbar{padding:19px 15px 15px}.admin-topbar p{font-size:.68rem}.system-badge{display:none}.admin-workspace{padding:14px 11px 32px}.metric-card{padding:13px}.metric-card strong{font-size:1.3rem}.ops-section-heading{align-items:flex-start}.event-heading{display:grid}.ops-filters{width:100%}.ops-filters select{width:50%;min-width:0}.admin-workspace .mission{align-items:stretch!important;flex-wrap:wrap}.staff-header{display:grid;gap:13px}.staff-header>div:last-child{text-align:left}.staff-header .brand-lockup{border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
