/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-xs:20rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-semibold:600;--leading-relaxed:1.625;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.flex{display:flex}.hidden{display:none}.h-screen{height:100vh}.max-w-xs{max-width:var(--container-xs)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[\#b8863b\]\/50{border-color:#b8863b80}.bg-\[\#070a10\]{background-color:#070a10}.bg-\[\#b8863b\]{background-color:#b8863b}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-\[\#070a10\]{color:#070a10}.text-\[\#d9a94a\]{color:#d9a94a}.text-\[\#e9d9b3\]{color:#e9d9b3}.text-\[\#e9d9b3\]\/60{color:#e9d9b399}.underline{text-decoration-line:underline}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.hover\:border-\[\#b8863b\]:hover{border-color:#b8863b}.hover\:bg-\[\#d9a94a\]:hover{background-color:#d9a94a}}}:root{--ink:#2b1c10;--ink-soft:#4a3520;--parchment:#e9d9b3;--parchment-dark:#cdb789;--parchment-deep:#a98a53;--gold:#b8863b;--gold-bright:#d9a94a;--rust:#7c3b28;--night:#0d1119;--night-deep:#070a10;--tide:#1c3b4a;--tide-bright:#3d7d8f;--moss:#5b6b46;--paper-shadow:0 18px 60px #0000008c;--r-sm:3px;--r-md:6px;--bg-img:url(/maps/bg.jpg)}*{box-sizing:border-box}html,body{background:var(--night-deep);height:100%;color:var(--parchment);-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-family:Noto Sans TC,serif;overflow:hidden}::selection{background:var(--gold);color:var(--night-deep)}h1,h2,h3,.display{letter-spacing:.03em;margin:0;font-family:Cinzel,Noto Serif TC,serif;font-weight:600}#stage{perspective:1700px;cursor:grab;touch-action:none;background:radial-gradient(ellipse at 30% 20%,#3d7d8f24,transparent 55%),radial-gradient(ellipse at 75% 75%,#7c3b281a,transparent 60%),var(--night-deep);position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}#stage,#stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#stage.grabbing{cursor:grabbing}#stage.drawing-region{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18"><circle cx="9" cy="9" r="5.5" fill="%23d9a94a" stroke="%23241505" stroke-width="1.5"/></svg>') 9 9,crosshair}#stage.placing-pin{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="26" height="34"><line x1="13" y1="16" x2="13" y2="33" stroke="%23241505" stroke-width="2"/><circle cx="13" cy="11" r="10" fill="%23d9a94a" stroke="%23241505" stroke-width="1.5"/></svg>') 13 33,pointer}#stage.zooming-in{cursor:zoom-in}#stage.zooming-out{cursor:zoom-out}#bgLayer{background-position:50%;background-size:cover;background-image:var(--bg-img);filter:sepia(.35)brightness(.42)contrast(1.05);will-change:transform;pointer-events:none;position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;transform:translateZ(-520px)scale(1.42)}#bgLayer:after{content:"";background:radial-gradient(at 50% 45%,#0000 30%,#070a10bf);position:absolute;top:0;right:0;bottom:0;left:0}#starDust{pointer-events:none;opacity:.55;mix-blend-mode:screen;position:absolute;top:0;right:0;bottom:0;left:0;transform:translateZ(-300px)scale(1.25)}#hitboxRef{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(calc(-50% + var(--panx,0px)),calc(-46% + var(--pany,0px))) scale(var(--mapscale,1));visibility:hidden;pointer-events:none;position:absolute;top:50%;left:50%}#world{transform-style:preserve-3d;will-change:transform;position:absolute;top:0;right:0;bottom:0;left:0}#continentShadow{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(-50%,-46%) translateZ(-70px) scale(var(--mapscale,1));filter:blur(18px);pointer-events:none;background:radial-gradient(#000000a6,#0000 68%);position:absolute;top:50%;left:50%}#continentEdge{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(-50%,calc(-46% + 9px)) translateZ(-32px) scale(var(--mapscale,1));background-image:var(--map-img);filter:brightness(.28)saturate(1.2)blur(.5px);pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:72%;position:absolute;top:50%;left:50%}#mapLayer{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(-50%,-46%) translateZ(0) scale(var(--mapscale,1));background-image:var(--map-img);filter:drop-shadow(0 30px 40px #00000080);background-position:50%;background-repeat:no-repeat;background-size:72%;transition:background-image .25s;position:absolute;top:50%;left:50%}#regionLayer{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(-50%,-46%) translateZ(.5px) scale(var(--mapscale,1));position:absolute;top:50%;left:50%;overflow:visible}#pinLayer{aspect-ratio:3/2;width:172%;max-width:2500px;transform:translate(-50%,-46%) translateZ(1px) scale(var(--mapscale,1));position:absolute;top:50%;left:50%}.pinWrap{position:absolute}.pin{--pin-c:#d9a94a;cursor:pointer;width:24px;height:34px;transition:transform .15s;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.pin.locked{--pin-c:#c94b3a}.pin.conditional{--pin-c:#d9a94a}.pin.free{--pin-c:#6fb4a8}.pin:hover{animation:.34s pinBounce;transform:translate(-50%,-100%)}.pin-stem{background:linear-gradient(to right,var(--pin-c),var(--pin-c),var(--pin-c));border-radius:0 0 2px 2px;width:3px;height:19px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.pin-stem{background:linear-gradient(to right,color-mix(in srgb,var(--pin-c) 65%,#000),color-mix(in srgb,var(--pin-c) 25%,#fff),color-mix(in srgb,var(--pin-c) 70%,#000))}}.pin-stem{filter:drop-shadow(0 2px 2px #00000080)}.pin-head{background:radial-gradient(circle at 34% 30%,var(--pin-c) 0%,var(--pin-c) 46%,var(--pin-c) 100%);border-radius:50%;width:21px;height:21px;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.pin-head{background:radial-gradient(circle at 34% 30%,color-mix(in srgb,var(--pin-c) 25%,#fff) 0%,var(--pin-c) 46%,color-mix(in srgb,var(--pin-c) 62%,#000) 100%)}}.pin-head{box-shadow:inset 0 -2.5px 4px var(--pin-c),inset 0 2px 3px var(--pin-c),0 4px 6px #0000008c}@supports (color:color-mix(in lab,red,red)){.pin-head{box-shadow:inset 0 -2.5px 4px color-mix(in srgb,var(--pin-c) 55%,#000),inset 0 2px 3px color-mix(in srgb,var(--pin-c) 40%,#fff),0 4px 6px #0000008c}}.pin-head{border:1px solid var(--pin-c)}@supports (color:color-mix(in lab,red,red)){.pin-head{border:1px solid color-mix(in srgb,var(--pin-c) 60%,#000)}}.pin-head:after{content:"";background:radial-gradient(circle,#ffffffd9,#fff0 70%);border-radius:50%;width:36%;height:30%;position:absolute;top:18%;left:24%}.pin:before,.pin:after{content:"";pointer-events:none;opacity:0;position:absolute;left:50%}@keyframes pinBounce{0%{animation-timing-function:cubic-bezier(.3,0,.2,1);transform:translate(-50%,-100%)translateY(0)}45%{animation-timing-function:cubic-bezier(.6,0,.7,1);transform:translate(-50%,-100%)translateY(-11px)}to{transform:translate(-50%,-100%)translateY(0)}}.pin:after{background:radial-gradient(ellipse at center,var(--pin-c),transparent 72%);border-radius:50%;width:20px;height:7px;bottom:-4px;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.pin:after{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--pin-c) 60%,transparent),transparent 72%)}}.pin:hover:after{animation:.26s .3s forwards pinGlowIn}@keyframes pinGlowIn{0%{opacity:0;width:20px}to{opacity:.9;width:32px}}.pin:before{border:2px solid var(--pin-c);border-radius:50%;width:21px;height:21px;bottom:15px;transform:translate(-50%)}.pin:hover:before{animation:1.4s ease-out .32s infinite pinHalo}@keyframes pinHalo{0%{opacity:.45;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(1.9)}}@media (prefers-reduced-motion:reduce){.pin:hover{animation:none}.pin:hover:before,.pin:hover:after{animation:none!important}.pin:hover:after{opacity:.85;width:30px}}.pin .badge{z-index:2;background:var(--night-deep);color:var(--parchment);border:1px solid var(--gold);border-radius:50%;padding:2px 4px;font-family:Cinzel;font-size:9px;line-height:1;position:absolute;top:-5px;right:-6px;box-shadow:0 2px 4px #00000080}.pin-label{white-space:nowrap;color:var(--parchment);pointer-events:none;text-overflow:ellipsis;background:#14100ac7;border:1px solid #b8863b66;border-radius:9px;max-width:88px;padding:2px 8px;font-size:10.5px;transition:max-width .22s,background-color .2s,border-color .2s;position:absolute;top:4px;left:0;overflow:hidden;transform:translate(-50%)}.pinWrap:hover{z-index:20}.pinWrap:hover .pin-label{border-color:var(--gold);background:#14100af0;max-width:280px}.pin-label.city{color:var(--gold-bright);top:-38px}.cityIcon{cursor:pointer;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.regionPoly{fill:#b8863b17;stroke:#d9a94a80;stroke-width:.7px;stroke-dasharray:3 2.5;vector-effect:non-scaling-stroke;pointer-events:none;transition:fill .18s,stroke .18s,stroke-width .18s}.regionPoly.hover{fill:#d9a94a33;stroke:var(--gold-bright);stroke-width:1.3px}.regionDraftLine{fill:none;stroke:var(--gold-bright);stroke-width:.9px;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.regionGlow .pin svg .head{filter:drop-shadow(0 0 6px var(--gold-bright))}.regionGlow .pin{transform:translate(-50%,-100%)scale(1.12)}.ring{border:2px solid var(--gold-bright);background:#d9a94a40;border-radius:50%;width:22px;height:22px;animation:2.6s ease-in-out infinite pulse;box-shadow:0 0 0 5px #d9a94a1f}@keyframes pulse{50%{opacity:.5}}.draftPin{pointer-events:none;z-index:5;position:absolute;transform:translate(-50%,-50%)}.draftPin .dot2{background:var(--gold-bright);border:1.5px solid #241505;border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite pulse;box-shadow:0 0 0 4px #d9a94a2e}#topbar{z-index:40;pointer-events:none;background:linear-gradient(#070a10e0,#070a1000);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;display:flex;position:fixed;top:0;left:0;right:0}#topbar>*{pointer-events:auto}.brand{flex-direction:column;flex-shrink:1;min-width:0;margin-right:auto;display:flex}.brand .title{color:var(--gold-bright);text-shadow:0 2px 6px #0009;text-overflow:ellipsis;white-space:nowrap;font-size:19px;overflow:hidden}.brand .sub{letter-spacing:.18em;color:var(--parchment-dark);opacity:.85;margin-top:2px;font-size:10.5px}.tabs{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100a8c;border:1px solid #b8863b59;border-radius:22px;flex-shrink:0;gap:6px;padding:5px;display:flex}.tab{color:var(--parchment-dark);cursor:pointer;letter-spacing:.04em;white-space:nowrap;background:0 0;border:none;border-radius:18px;padding:7px 14px;font-family:Noto Sans TC;font-size:13px}.tab.active{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;font-weight:600}.iconbtn{width:38px;height:38px;color:var(--gold-bright);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100a8c;border:1px solid #b8863b59;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.iconbtn.small{width:30px;height:30px;font-size:13px}.iconbtn:before,.iconbtn:after{pointer-events:none;opacity:0}.iconbtn:before{content:"";transform-origin:top;border-left:1px solid var(--gold);border-right:1px solid var(--gold);z-index:39;background:#120e09f0;border-radius:0 0 3px 3px;width:9px;height:8px;transition:transform .18s,opacity .12s;position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%)scaleY(0)}.iconbtn:after{content:attr(aria-label);transform-origin:top;color:var(--gold-bright);border:1px solid var(--gold);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;letter-spacing:.04em;z-index:40;background:#120e09f0;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;transition:transform .22s cubic-bezier(.34,1.4,.6,1),opacity .16s;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)scale(.6);box-shadow:0 6px 16px #00000073,inset 0 0 0 1px #d9a94a1f}.iconbtn:hover:before,.iconbtn:focus-visible:before{opacity:1;transform:translate(-50%)scaleY(1)}.iconbtn:hover:after,.iconbtn:focus-visible:after{opacity:1;transform:translate(-50%)scale(1)}@media (prefers-reduced-motion:reduce){.iconbtn:before,.iconbtn:after{transition:opacity .12s;transform:translate(-50%)}.iconbtn:hover:before,.iconbtn:focus-visible:before{transform:translate(-50%)}}@media (hover:none){.iconbtn:before,.iconbtn:after{display:none}}.iconbtn.on{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;border-color:#0000}.memberPill{color:var(--gold-bright);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#14100a8c;border:1px solid #b8863b59;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:8px 15px;font-size:12.5px;display:flex}.login-screen{z-index:60;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:radial-gradient(at 30% 18%,#3d7d8f29,#0000 55%),radial-gradient(at 74% 80%,#7c3b2824,#0000 60%),#070a10e6;justify-content:center;align-items:center;padding:24px;animation:.28s loginFade;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes loginFade{0%{opacity:0}to{opacity:1}}.login-card{text-align:center;width:100%;max-width:430px;box-shadow:var(--paper-shadow),inset 0 0 60px #b8863b0d;background:linear-gradient(#17120bd1,#0d1119e6);border:1px solid #b8863b66;border-radius:12px;padding:46px 34px 38px;animation:.32s cubic-bezier(.2,.7,.3,1) loginRise;position:relative}@keyframes loginRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-close{color:var(--parchment-deep);cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;font-size:18px;line-height:1;transition:opacity .15s,color .15s;position:absolute;top:12px;right:14px}.login-close:hover{opacity:1;color:var(--gold-bright)}.login-crest{color:var(--gold);letter-spacing:.3em;margin-bottom:6px;font-size:26px}.login-title{color:var(--gold-bright);margin-bottom:8px;font-size:30px}.login-sub{letter-spacing:.1em;color:var(--parchment-deep);font-size:12px}.login-desc{color:var(--parchment);opacity:.9;margin:24px 0 28px;font-size:13.5px;line-height:2}.login-google{color:#3c4043;letter-spacing:.01em;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #dadce0;border-radius:23px;justify-content:center;align-items:center;gap:10px;width:100%;height:46px;font-family:Roboto,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:14.5px;font-weight:500;transition:background .15s,box-shadow .15s,border-color .15s;display:inline-flex}.login-google:hover{background:#f7f8f8;border-color:#d2d5da;box-shadow:0 1px 4px #3c404352}.login-google:active{background:#eef0f2}.login-google .gsi-g{display:inline-flex}.login-back{color:var(--parchment-deep);cursor:pointer;background:0 0;border:none;margin:18px auto 0;font-size:12.5px;transition:color .15s;display:block}.login-back:hover{color:var(--gold-bright)}#adminCorner{opacity:.55;align-items:center;gap:6px;transition:opacity .2s;display:flex}#adminCorner:hover,#adminCorner.active{opacity:1}#adminChip{z-index:41;color:#fff;letter-spacing:.08em;background:#c84b3ae6;border-radius:14px;padding:5px 14px;font-size:11.5px;position:fixed;top:64px;left:50%;transform:translate(-50%)}#previewChip{z-index:41;color:var(--parchment);letter-spacing:.05em;border:1px solid var(--tide-bright);background:#1c3b4aeb;border-radius:16px;align-items:center;gap:6px;padding:5px 8px 5px 14px;font-size:11.5px;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}#previewChip button{cursor:pointer;color:var(--parchment-dark);background:0 0;border:1px solid #e9d9b359;border-radius:12px;padding:3px 11px;font-family:Noto Sans TC,sans-serif;font-size:11.5px}#previewChip button.on{background:var(--parchment);color:var(--tide);border-color:#0000;font-weight:600}#previewChip button.exit{background:var(--gold-bright);color:#241505;border-color:#0000;margin-left:2px;font-weight:600}#zoomctl{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100a8c;border:1px solid #b8863b59;border-radius:26px;flex-direction:column;gap:8px;padding:8px;display:flex;position:fixed;bottom:26px;right:16px}#zoomctl button{width:36px;height:36px;color:var(--gold-bright);cursor:pointer;background:#e9d9b314;border:none;border-radius:50%;font-size:17px}#zoomctl button:active{background:var(--gold);color:#241505}#legend{z-index:40;color:var(--parchment-dark);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100a99;border:1px solid #b8863b59;border-radius:12px;max-width:210px;padding:10px 14px;font-size:11.5px;line-height:1.9;position:fixed;bottom:26px;left:16px}#legend b{color:var(--gold-bright);margin-bottom:2px;font-size:12px;display:block}.legend-row{align-items:center;gap:7px;display:flex}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.dot.locked{background:#c94b3a}.dot.conditional{background:#d9a94a}.dot.free{background:#6fb4a8}#touchHelp{display:none}@media (hover:none) and (pointer:coarse){#touchHelp{z-index:41;display:block;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}#legend .mouse-only{display:none}}.th-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--parchment-dark);cursor:pointer;text-align:center;background:#14100adb;border:1px solid #b8863b66;border-radius:14px;min-width:210px;padding:11px 16px;font-size:13px;line-height:1.85;box-shadow:0 8px 24px #0006}.th-card .th-row{white-space:nowrap}.th-card .th-collapse{color:var(--gold-bright);letter-spacing:.08em;border-top:1px solid #b8863b40;margin-top:6px;padding-top:6px;font-size:11px}.th-toggle{color:var(--gold-bright);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#14100ab3;border:1px solid #b8863b66;border-radius:20px;padding:8px 16px;font-family:Noto Sans TC,sans-serif;font-size:13px;box-shadow:0 6px 18px #00000059}#regionToolbar{z-index:41;border:1px solid var(--gold);color:var(--parchment-dark);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100ad9;border-radius:22px;align-items:center;gap:10px;padding:9px 16px;font-size:12.5px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}#regionToolbar button{cursor:pointer;border:none;border-radius:14px;padding:6px 13px;font-family:Noto Sans TC;font-size:12.5px}#regionToolbar button.primary{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;font-weight:600}#regionToolbar button.ghost{border:1px solid var(--parchment-dark);color:var(--parchment-dark);background:0 0}#regionToolbar b{color:var(--gold-bright)}#toast{border:1px solid var(--gold);color:var(--parchment);z-index:80;opacity:0;pointer-events:none;background:#14100aeb;border-radius:20px;padding:9px 18px;font-size:13px;transition:opacity .25s,transform .25s;position:fixed;top:70px;left:50%;transform:translate(-50%)}#toast.show{opacity:1;transform:translate(-50%)translateY(6px)}#scaleBar{z-index:40;border-left:2px solid var(--gold-bright);border-right:2px solid var(--gold-bright);border-bottom:2px solid var(--gold-bright);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100a66;min-width:20px;height:18px;transition:width .12s;position:fixed;bottom:30px;right:84px}#scaleBar:before{content:"";background:var(--gold-bright);opacity:.7;width:1px;height:7px;position:absolute;bottom:0;left:50%}#scaleBar .sb-label{color:var(--gold-bright);white-space:nowrap;text-shadow:0 1px 3px #000000d9;font-family:Noto Sans TC,sans-serif;font-size:11px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}#centerHint{z-index:30;pointer-events:none;text-align:center;white-space:nowrap;letter-spacing:.05em;color:var(--gold-bright);text-shadow:0 3px 16px #000000d9,0 0 30px #d9a94a38;opacity:0;font-family:Cinzel,Noto Serif TC,serif;font-size:clamp(19px,3.2vw,32px);font-weight:600;transition:opacity .5s;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}#centerHint.show{opacity:1}#guestBanner{z-index:39;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--parchment-dark);background:#14100ad1;border:1px solid #b8863b80;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:94vw;padding:7px 16px;font-size:12.5px;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}#guestBanner .gb-login{cursor:pointer;background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;border:none;border-radius:14px;padding:5px 14px;font-family:Noto Sans TC,sans-serif;font-size:12.5px;font-weight:600}#guestBanner .gb-patreon{color:var(--gold-bright);white-space:nowrap;font-size:12.5px;text-decoration:none}#guestBanner .gb-patreon:hover{text-decoration:underline}@media (max-width:560px){#guestBanner{top:auto;bottom:84px}}.overlay{z-index:100;background:#05060a99;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}@media (min-width:760px){.overlay{align-items:center}}.sheet{background:linear-gradient(180deg,#e9d9b30f,#e9d9b300),var(--parchment);width:100%;max-width:560px;max-height:88vh;color:var(--ink);border:1px solid var(--parchment-deep);box-shadow:var(--paper-shadow);border-radius:18px 18px 0 0;padding:20px 20px 26px;position:relative;overflow-y:auto}@media (min-width:760px){.sheet{border-radius:16px}}.sheet:before{content:"";border-radius:inherit;pointer-events:none;background-image:var(--bg-img);opacity:.14;mix-blend-mode:multiply;background-position:50%;background-size:cover;position:absolute;top:0;right:0;bottom:0;left:0}.sheet-inner{z-index:1;position:relative}.sheet h2{color:var(--rust);font-size:20px}.sheet .meta{color:var(--ink-soft);letter-spacing:.03em;margin-top:4px;font-size:12px}.closeX{z-index:2;border:1px solid var(--parchment-deep);width:30px;height:30px;color:var(--ink);cursor:pointer;background:#ffffff59;border-radius:50%;font-size:16px;position:absolute;top:14px;right:16px}hr.rule{border:none;border-top:1px solid var(--parchment-deep);opacity:.7;margin:16px 0}.field{margin-bottom:14px}.field label{color:var(--ink-soft);letter-spacing:.03em;margin-bottom:5px;font-size:12.5px;display:block}.field input[type=text],.field textarea,.field select{border:1px solid var(--parchment-deep);width:100%;color:var(--ink);resize:vertical;background:linear-gradient(#fffaec8c,#c9af7c59);border-radius:8px;padding:9px 11px;font-family:Noto Sans TC;font-size:14px;box-shadow:inset 0 1px 5px #5a3a142e}.field textarea{min-height:64px;line-height:1.6}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--gold)}.catrow{border:1px solid var(--parchment-deep);background:linear-gradient(#fffaec66,#c9af7c38);border-radius:10px;flex-direction:column;gap:8px;margin-bottom:14px;padding:10px 12px;display:flex}.catrow .catrow-top{align-items:center;gap:8px;display:flex}.catrow select{border:1px solid var(--parchment-deep);color:var(--ink);background:#ffffff80;border-radius:7px;flex:0 0 118px;padding:6px 8px;font-family:Noto Sans TC;font-size:13px}.catrow textarea{border:1px solid var(--parchment-deep);width:100%;min-height:120px;color:var(--ink);resize:vertical;background:#ffffff8c;border-radius:7px;padding:9px 10px;font-size:14px;line-height:1.65;box-shadow:inset 0 1px 5px #5a3a1424}.catrow .rm{border:1px solid var(--parchment-deep);width:30px;height:30px;color:var(--rust);cursor:pointer;background:#fff6;border-radius:7px;flex:none;font-size:14px}.addcat{border:1px dashed var(--gold);color:var(--rust);cursor:pointer;background:0 0;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;font-family:Noto Sans TC;font-size:12.5px;display:inline-flex}.btnrow{gap:10px;margin-top:18px;display:flex}.btn{letter-spacing:.03em;cursor:pointer;border:none;border-radius:10px;flex:1;padding:12px 14px;font-family:Noto Sans TC;font-size:14.5px}.btn.primary{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;font-weight:600;box-shadow:0 6px 16px #b8863b59}.btn.ghost{border:1px solid var(--ink-soft);color:var(--ink-soft);background:0 0;flex:none;padding:12px 18px}.btn.danger{color:#c94b3a;background:#c84b3a26;border:1px solid #c94b3a;flex:none;padding:12px 18px}.btn:disabled{opacity:.45;cursor:not-allowed}.tag{letter-spacing:.03em;border:1px solid;border-radius:10px;margin-right:6px;padding:2px 9px;font-size:10.5px;display:inline-block}.tag.locked{color:#a83b2c}.tag.conditional{color:#a4780f}.tag.free{color:#3d7a55}.submission{border:1px solid var(--parchment-deep);background:#ffffff52;border-radius:10px;margin-bottom:10px;padding:12px 14px}.submission .who{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.submission .who b{color:var(--rust);font-weight:600}.submission .cat-line{margin-top:4px;font-size:13.5px;line-height:1.65}.submission .cat-line .k{color:var(--rust);margin-right:6px;font-weight:600}.empty-note{color:var(--ink-soft);text-align:center;opacity:.8;padding:14px 4px;font-size:13px}.sortToggle{background:#b8863b24;border-radius:12px;gap:2px;padding:2px;display:flex}.sortToggle button{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:4px 10px;font-family:Noto Sans TC,sans-serif;font-size:11.5px}.sortToggle button.on{background:var(--rust);color:var(--parchment)}.likeBtn{border:1px solid var(--parchment-deep);color:var(--ink-soft);cursor:pointer;background:#fff6;border-radius:14px;padding:3px 10px;font-family:Noto Sans TC,sans-serif;font-size:12px;line-height:1}.likeBtn.on{border-color:var(--rust);color:var(--rust);background:#c84b3a24}.likeBtn:hover{border-color:var(--rust)}.consentRow{color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:8px;margin-top:14px;font-size:12px;line-height:1.55;display:flex}.consentRow input{accent-color:var(--rust);flex:none;margin-top:2px}.modeToggle{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#14100a8c;border:1px solid #b8863b59;border-radius:22px;flex-shrink:0;gap:2px;padding:4px;display:flex}.modeToggle button{color:var(--parchment-dark);cursor:pointer;white-space:nowrap;letter-spacing:.03em;background:0 0;border:none;border-radius:16px;padding:6px 12px;font-family:Noto Sans TC,sans-serif;font-size:12.5px}.modeToggle button.on{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#241505;font-weight:600}.canonBox{border:1px solid var(--gold);background:#b8863b1f;border-radius:10px;margin-top:14px;padding:12px 14px}.canonTag{color:var(--gold);letter-spacing:.08em;margin-bottom:4px;font-size:11px;font-weight:600}.canonName{color:var(--rust);font-family:Cinzel,Noto Serif TC,serif;font-size:16px;font-weight:600}.canonText{color:var(--ink);white-space:pre-wrap;margin-top:6px;font-size:13.5px;line-height:1.7}.canonMeta{color:var(--ink-soft);opacity:.85;margin-top:8px;font-size:11.5px}.canonEditor{border:1px dashed var(--gold);background:#b8863b14;border-radius:10px;margin-top:14px;padding:12px 14px}.condbox{color:var(--ink-soft);background:#b8863b24;border:1px solid #b8863b66;border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:12.5px;line-height:1.6}.lockbox{color:#7c2d1e;background:#c84b3a1a;border:1px solid #c84b3a59;border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:12.5px;line-height:1.6}.draftPinWrap .pin.draft{opacity:.7;animation:1.4s ease-in-out infinite draftPulse}.draftPinWrap .pin-label{color:var(--gold-bright);opacity:.9;border-style:dashed}@keyframes draftPulse{0%,to{opacity:.55}50%{opacity:.9}}@media (prefers-reduced-motion:reduce){.draftPinWrap .pin.draft{animation:none}}.kindHint{color:var(--ink-soft);border-left:3px solid var(--gold);background:#b8863b1a;border-radius:0 6px 6px 0;margin-top:7px;padding:8px 11px;font-size:12px;line-height:1.6}.linkbtn{cursor:pointer;background:0 0;border:none;padding:0;font-family:Noto Sans TC,sans-serif;font-size:12px;text-decoration:underline}.linkbtn.tide{color:var(--tide-bright)}.linkbtn.rust{color:var(--rust)}.linkbtn.gold{color:var(--gold)}#npcPage{z-index:60;background:var(--night-deep);background-image:var(--bg-img);background-position:50%;background-size:cover;flex-direction:column;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}#npcPage:before{content:"";background:#070a10d1;position:absolute;top:0;right:0;bottom:0;left:0}.npc-head{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1119b3;border-bottom:1px solid #b8863b40;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;display:flex;position:relative}.npc-title{color:var(--gold-bright);font-size:20px}.npc-sub{color:var(--parchment-dark);margin-top:3px;font-size:12px}.npc-head-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.npc-close{position:static}.npc-scroll{z-index:1;flex:1;padding:22px;position:relative;overflow-y:auto}.npc-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;max-width:1100px;margin:0 auto;display:grid}.npc-card{background:var(--parchment);border:1px solid var(--parchment-deep);cursor:pointer;border-radius:12px;transition:transform .16s,box-shadow .16s;overflow:hidden;box-shadow:0 4px 14px #00000059}.npc-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px #00000080}.npc-photo{aspect-ratio:1;background:#2b1c101f;position:relative}.npc-photo img{object-fit:cover;width:100%;height:100%;display:block}.npc-photo-empty{height:100%;color:var(--parchment-deep);justify-content:center;align-items:center;font-size:40px;display:flex}.npc-canon-badge{background:#0d1119b3;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;display:flex;position:absolute;top:8px;right:8px}.npc-card-body{padding:11px 13px 13px}.npc-name{color:var(--rust);font-family:Noto Serif TC,serif;font-size:15px;font-weight:600}.npc-meta{color:var(--ink-soft);margin-top:3px;font-size:12px}.npc-region{color:var(--moss);margin-top:2px;font-size:11.5px}.npc-detail-photo{object-fit:cover;border-radius:10px;width:100%;max-height:280px;margin-bottom:14px}.npc-field{color:var(--ink);margin-bottom:12px;font-size:13.5px;line-height:1.7}.npc-field b{color:var(--rust);letter-spacing:.05em;margin-bottom:2px;font-size:11.5px;display:block}.npc-two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.npc-upload{align-items:center;gap:14px;display:flex}.npc-upload-preview{object-fit:cover;border:1px solid var(--parchment-deep);border-radius:10px;width:72px;height:72px}.npc-upload-empty{border:1px dashed var(--parchment-deep);width:72px;height:72px;color:var(--parchment-deep);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:26px;display:flex}@media (max-width:640px){.npc-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.npc-head{padding:14px 16px}.npc-two{grid-template-columns:1fr}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--parchment-deep);border-radius:8px}@media (max-width:640px){#topbar{gap:8px 10px;padding:10px 12px}.brand .title{font-size:16px}.brand .sub{display:none}.iconbtn{width:40px;height:40px}.iconbtn.small{width:34px;height:34px}.tab{padding:8px 12px;font-size:13px}#zoomctl button{width:44px;height:44px;font-size:20px}#legend{max-width:150px;padding:8px 10px;font-size:10.5px}.sheet{padding:18px 16px 22px}}@media (max-width:400px){.brand{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
